uniapp的uview上传组件u-upload遇到的问题
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; // 单位字节,这⾥表⽰最⼤1MBflutter uniapp 哪个好
$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 ⾥显⽰出来是乱码。暂未到解决办法。