uni-app APP uploadFile上传图片一直报错errMsg:"uploadFile:fail undefined"

uni-app APP uploadFile上传图片一直报错errMsg:“uploadFile:fail undefined”

开发环境 版本号 项目创建方式
Windows win10 HBuilderX

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:2.8.13

手机系统:Android

手机系统版本号:Android 10

手机厂商:小米

手机机型:小米9SE

页面类型:vue

打包方式:云端

操作步骤:

  • uni.chooseImage选择图片,uploadFile上传

预期结果:

  • success

实际结果:

  • fail : errMsg":"uploadFile:fail undefined
uni.chooseImage({  
    count:1, // 默认9  
    sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有  
    sourceType: ['album'], // 可以指定来源是相册还是相机,默认二者都有  
    success(res) {  
        uni.showLoading({  
            title:'正在上传...',  
            mask:true  
        })  
        let times=Math.round(new Date() / 1000);//时间戳;  
        uni.uploadFile({  
            url: 'xxx',  
            filePath:res.tempFilePaths[0],  
            name: 'pic',  
            formData: {timestamp:times,token: token },  
            success: (res) => {  
                console.log(res);  
                uni.hideLoading();  
            },  
            fail(r){  
                uni.hideLoading();  
                console.log(r);  
            }  
        })  
    }  
})

更多关于uni-app APP uploadFile上传图片一直报错errMsg:"uploadFile:fail undefined"的实战教程也可以访问 https://www.itying.com/category-93-b0.html

14 回复

解决了么,我在安卓上上传视频不行,传照片可以

更多关于uni-app APP uploadFile上传图片一直报错errMsg:"uploadFile:fail undefined"的实战教程也可以访问 https://www.itying.com/category-93-b0.html


我也想问,不知道咋回事?

排查下,上传的url是否写完整?

试了,也不行

我是打包成H5上传不了,app和pc调试都没问题,楼长解决了吗???,一样的错误

加我qq1661875259

回复 1***@qq.com: 哥们你有解决方法么

这个是uni.uploadFile估计忘了过原来那条路了。 可以在main.js里重写: const originalUploadFile=uni.uploadFile; uni.uploadFile=function (location){ location.url=Vue.prototype.baseURL+location.url; return originalUploadFile.call(this, location); }

不行,没效果

我找到了还有个原因,也可能文件太大,也会报这个错误 (手机为小米) 具体的原因如下 1、服务器配置限制了2M的文件大小, 2、从相册中选择照片的时候,文件已经优化了只有一两兆,但是从摄像头临时拍摄的相片是在5M左右,这个可以从打印的具体文件路径去找
解决办法就是上传之前压缩文件 参考https://www.cnblogs.com/Lucyy/p/12787381.html

大文件 uploadFile:fail 什么原因。 大概80M左右

解决这种报错可分两步:先检查上传url是否合法,然后再检查url是否包含本地搭建的虚拟域名即可,一般报错原因是使用本地搭建的虚拟域名,它其实指向127.0.0.1,在真实网络中通过这个是无法发现服务端的,所以失败,解决方法就是换成Ip地址即可。

这个错误通常是由于上传接口配置或网络问题导致的。以下是可能的原因和解决方案:

  1. 检查上传URL是否正确
  • 确保url参数是完整的接口地址(你代码中写的是’xxx’)
  • 如果是本地测试,确保使用http://或https://开头的完整URL
  1. 检查服务器配置
  • 确认服务器端已正确配置跨域(CORS)
  • 检查服务器接口是否能正常接收文件上传
  1. 检查网络权限
  • 在manifest.json中确保已勾选网络请求权限
  • 如果是https接口,确保证书有效
  1. 其他常见问题
  • 文件路径问题:确认res.tempFilePaths[0]确实存在
  • 文件大小限制:检查服务器是否有文件大小限制
  • 请求超时:可以添加timeout参数

建议调试方法:

  1. 先用Postman测试接口是否正常
  2. 打印完整错误信息:
fail(r){
    console.log(JSON.stringify(r));
}
回到顶部