header 屬性
header 屬性設置 {'Content-Type': 'application/json; charset=utf-8'}
,會導致問題,在開發者工具可以上傳圖片,但是在微信電腦端或者微信手機端無法上傳圖片。報錯如下:
[error] [0]Argument 1 passed to think\Validate::check() must be of the type array, null given
報錯的具體代碼:
private function validateUpload()
{
$max_size = 1024*1024*3; // 單位字節,這里表示最大1MB
$request = request()->file();
// var_dump($request);
$rules = [
'file' => [
'file',
'fileSize:' . $max_size,
'image',
// 'fileExt:jpg',
],
];
$messages = [
'file.file' => '必須上傳文件',
'file.fileSize' => '文件大小不能超過 3MB',
'file.image' => '必須上傳圖片',
// 'file.fileExt' => '圖片文件后綴不合法',
];
try {
validate($rules, $messages)->check($request);
} catch (\think\exception\ValidateException $e) {
return ['err' => true, 'msg' => $e->getMessage()];
}
return ['err' => false];
}
原因是 request()->file()
獲取到的值是 null
。去掉 header 屬性設置 Content-type
就好了。
uploadAction 接口返回中文亂碼
uploadAction 接口返回含有中文,在調試工具 Network 里顯示出來是亂碼。暫未找到解決辦法。