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; // 单位字节,这里表示最大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 里显示出来是乱码。暂未找到解决办法。

posted @   imzhi  阅读(12448)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示