uniapp 的 uview 上传组件 <uupload> 遇到的问题

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

微信公众号:PHP和Laravel学习

公众号二维码图片
原文地址:https://www.cnblogs.com/imzhi/p/15666550.html