9***@qq.com
9***@qq.com
  • 发布:2021-08-26 08:43
  • 更新:2022-04-27 17:30
  • 阅读:3632

【报Bug】uni.uploadFile报错:“uploadFile:fail undefined”

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macos 10.14.6

HBuilderX类型: 正式

HBuilderX版本号: 3.2.3

手机系统: Android

手机系统版本号: Android 11

手机厂商: 小米

手机机型: 小米8

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

upimg(){
let _this=this;
uni.chooseImage({
count:1,
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths;
console.log(tempFilePaths[0]);
console.log(this.config+'manage/img/upload');
uni.uploadFile({
url: this.config+'manage/img/upload', //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
file:tempFilePaths[0],
name: 'img',
formData: {
img:tempFilePaths[0],
},
success: (uploadFileRes) => {
console.log(uploadFileRes.data);
let dat=JSON.parse(uploadFileRes.data)
console.log(dat)
if(dat.code==1){

                            _this.data.images.push(dat.data.url)  
                        }  

                        else{  
                            uni.showToast({  
                                title: dat.data.msg,  
                                icon:"none",  
                                duration: 1000  
                            });  
                        }  
                    },  
                    fail(err) {  
                        console.log(err)  
                    }  
                });  
            }  
        });       
        },

操作步骤:

upimg(){
let _this=this;
uni.chooseImage({
count:1,
success: (chooseImageRes) => {
const tempFilePaths = chooseImageRes.tempFilePaths;
console.log(tempFilePaths[0]);
console.log(this.config+'manage/img/upload');
uni.uploadFile({
url: this.config+'manage/img/upload', //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
file:tempFilePaths[0],
name: 'img',
formData: {
img:tempFilePaths[0],
},
success: (uploadFileRes) => {
console.log(uploadFileRes.data);
let dat=JSON.parse(uploadFileRes.data)
console.log(dat)
if(dat.code==1){

                            _this.data.images.push(dat.data.url)  
                        }  

                        else{  
                            uni.showToast({  
                                title: dat.data.msg,  
                                icon:"none",  
                                duration: 1000  
                            });  
                        }  
                    },  
                    fail(err) {  
                        console.log(err)  
                    }  
                });  
            }  
        });       
        },

预期结果:

上传图片成功

实际结果:

上传失败

bug描述:

uni.uploadFile。上传提示 "errMsg": "uploadFile:fail undefined"
是在升级到3.2.2 版本出现的,之前是比较老的版本,状态项目隔啦一年多要改的需求。改完发现 上传者一块出问题啦。
选择相册里的图片上传是正常的,手机拍摄的不行。

2021-08-26 08:43 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com - uniapp开发者

以上原因都不是的话 可能就是 服务器配置限制了 2M 或其他 上传大小

我找到了还有个原因,也可能文件太大,也会报这个错误
(手机为小米)
具体的原因如下
1、服务器配置限制了2M的文件大小,
2、从相册中选择照片的时候,文件已经优化了只有一两兆,但是从摄像头临时拍摄的相片是在5M左右,这个可以从打印的具体文件路径去找

解决办法就是上传之前压缩文件
参考https://www.cnblogs.com/Lucyy/p/12787381.html

该问题目前已经被锁定, 无法添加新回复