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 里显示出来是乱码。暂未找到解决办法。