thinkphp6 上传文件
2022-04-21 10:23:38341
/**
* 上传文件
* @author 朝游东海
* @param string $filename input框的name
* @param string $filepath 存储路径
* @param string $rule 验证规则
* @param int $maxsize 允许文件上传的大小 默认为2m
* @param bool $fileas 是否用原文件名上传保存 默认false
* @return array
*/
public function upload($filename='file',$filepath='images',$rule='fileExt:jpg,jpeg,png,gif,pem|fileMime:image/jpeg,image/gif,image/png,text/plain',$maxsize=2097152,$fileas=false)
{
$file = request()->file($filename);
try {
if($file->getSize() > $maxsize){
return rMsg(0,'上传失败,文件超出大小,请选择'.floor($maxsize/1024/1024) . 'm以内的文件');
}
validate([$filename => $rule])->check([$filename => $file]);
//$savename = Filesystem::disk('public')->putFile( $filepath, $file); // /public/storage/images/5d16da691b5eb.png 根据内部方法生成文件名
//$savename = Filesystem::disk('public')->putFileAs( $filepath.'/'.date('Ymd'), $file,$file->getOriginalName()); // /public/storage/images/Snipaste_2019-11-20_11-57-35.jpg 使用原文件名
$savename = $fileas == false ? Filesystem::disk('public')->putFile( $filepath, $file) : Filesystem::disk('public')->putFileAs( $filepath.'/'.date('Ymd'), $file,$file->getOriginalName());
return rMsg(1,'上传成功',['path'=>Filesystem::getDiskConfig('public', 'url') . '/' . str_replace('\\', '/', $savename)]);
} catch (ValidateException $e) {
return rMsg(0,$e->getMessage());
}
}


