如圖,圈起來的地方原來用是call_user_func而不是用call_user_func_array
兩個方法的區別查手冊得知
代碼1、上傳接收方法public upload(){}
/**
* 公共上傳文件本地
* @param $filesize 文件大小
* @param $exts 文件擴展名
* @param $path 磁盤目錄
* @param $folder 上傳的文件夾
*/
public function uploadFile($filesize=0,$exts='jpg,png,gif,jpeg,rar,zip,avi,rmvb,3gp,flv,mp3,txt,doc,xls,ppt,pdf,xls,docx,xlsx,doc',$path='public',$folder='uploads')
{
$filesize=$filesize?:1024*1024*1024 ;//換算成以M爲單位,設置附件上傳大小(TP單位byte);
$exts=$exts?:'mp4';// 設置附件上傳類型
$files = request()->file();
try {
validate(['UploadForm'=>"filesize:$filesize|fileExt:$exts|file"])->check(object2array($files));
$savename = [];
foreach($files as $file){
$savename[] = Filesystem::disk("{$path}")->putFile("{$folder}", $file,'get_file_name');
}
$result['savename'] = $savename;
$result['status']=true;
$result['upload_info']='文件上傳成功!';
} catch (\Exception $e) {
//上傳失敗獲取錯誤信息
$result['status'] = false;
$result['upload_info'] = $e->getMessage();
}
return $result;
}
代碼2、自定義文件命方法function get_file_name(){}
/**
* 獲取文件名,用ID+文件名+日期
*/
function get_file_name($arr=array()){
$data=date('Ymd',time());
$file=func_get_args();//獲取傳遞過來的參數,文件對象
$filename=$data.(explode('.'.$file[0]->getOriginalExtension(),$file[0]->getOriginalName())[0]);//獲取原文件名,think\file\UploadedFile的類
return $filename;
}
代碼3、上傳方法
/**
* 上傳圖片
*/
public function uploadFileImg(){
$file_size=200*1024*1024 ;//換算成以M爲單位,設置附件上傳大小(TP單位byte);
$fileInfo=$this->uploadFile($file_size,'jpg,png,gif,jpeg', 'public','mediaimg');
dump($fileInfo);exit();
$this->result($fileInfo, 0, '添加成功!');
}