ThinkPHP6.0升級(jí)到6.1之后,文件上傳報(bào) Class ‘think\facade\Filesystem’ not found 錯(cuò)誤,真夠郁悶的。
那么,需要把之前的代碼做點(diǎn)改動(dòng),之前的代碼如下:
use think\facade\Filesystem;
public function index(){
$uid = $this->request->middleware('uid');
$files = request()->file('file');
$res = [];// 存儲(chǔ)上傳失敗的信息
$res['success'] = [];
$res['error'] = [];
foreach($files as $file){
$ext = $file->getOriginalExtension();
//不同文件,儲(chǔ)存不同的文件夾
$folder = config('filesystem.disks.folder') . '/api/' . $ext; //存文件目錄
if(!file_exists($folder))mkdir($folder, 0700,TRUE);//如果文件夾不存在,則創(chuàng)建
$savename = Filesystem::disk('public')->putFile($folder,$file);
$getOriginalName = $file->getOriginalName();
$getSize = $file->getSize();
if (!$savename) {
$res['error'][] = $getOriginalName;
}else{
$savename = '/' . str_replace("\\","/",$savename);
$uploadRes = (new ApiUploadFiles())->create([
'uid'=>$uid,
'file_name'=>$getOriginalName,
'file_size'=>$getSize,
'extension'=>$ext,
'url'=>$savename,
]);
if($uploadRes){
$res['success'][] = [
'id'=>$uploadRes->id,
'name'=>$getOriginalName,
'path'=>Request::domain().'/'.$savename
];
}else{
$res['error'][] = ['name'=>$getOriginalName];
}
}
}
return show($res,200);
}
接口返回:
接下來(lái)將上傳部分做個(gè)更改,來(lái)適配無(wú)Filesystem擴(kuò)展的狀態(tài)
use think\File;
public function index(){
$uid = $this->request->middleware('uid');
$files = request()->file('file');
$res = [];// 存儲(chǔ)上傳失敗的信息
$res['success'] = [];
$res['error'] = [];
foreach($files as $file){
$ext = $file->getOriginalExtension();
$fileInfo = pathinfo($file);
// 獲取文件地址和名稱
$filePath = $fileInfo['dirname'] . '/' . $fileInfo['basename'];
// 文件地址轉(zhuǎn)文件類
$fileUp = new File($filePath);
//不同文件,儲(chǔ)存不同的文件夾
$folder = config('filesystem.disks.folder') . '/api/' . $ext.'/'.fdate('','Ymd'); //存文件目錄
if(!file_exists($folder))mkdir($folder, 0700,TRUE);//如果文件夾不存在,則創(chuàng)建
$savename = $fileUp->md5() . '.' . $ext;
$size = $file->getSize();
$getOriginalName = $file->getOriginalName();
$fileUp->move($folder, $folder.'/'.$savename);
if (!$savename) {
$res['error'][] = $getOriginalName;
}else{
$savename = '/' . str_replace("\\","/",$folder.'/'.$savename);
$uploadRes = (new ApiUploadFiles())->create([
'uid'=>$uid,
'file_name'=>$getOriginalName,
'file_size'=>$size,
'extension'=>$ext,
'url'=>$savename,
]);
if($uploadRes){
$res['success'][] = [
'id'=>$uploadRes->id,
'name'=>$getOriginalName,
'path'=>Request::domain().$savename
];
}else{
$res['error'][] = ['name'=>$getOriginalName];
}
}
}
return show($res,200);
}
api接口返回
OK,完美解決!
另一種更簡(jiǎn)單的處理方式:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-632161.html
ThinkPHP6.0升級(jí)到6.1之后,文件上傳報(bào) Class ‘think\facade\Filesystem‘ not found 錯(cuò)誤的另一種更簡(jiǎn)單的解決方案文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-632161.html
到了這里,關(guān)于ThinkPHP6.0升級(jí)到6.1之后,文件上傳報(bào) Class ‘think\facade\Filesystem‘ not found 錯(cuò)誤的解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!