uni-app 手机端上传头像提示 "errMsg": "uploadFile:fail undefined"

uni-app 手机端上传头像提示 “errMsg”: “uploadFile:fail undefined”

开发环境 版本号 项目创建方式
Windows 64位 HBuilderX
HBuilderX 2.9.3
Android模拟器 Android 11
页面类型 vue

操作步骤:

预期结果:

正常上传

实际结果:

uni.uploadFile 未定义

bug描述:

H5端正常但是手机端上传头像提示uploadFile未定义


更多关于uni-app 手机端上传头像提示 "errMsg": "uploadFile:fail undefined"的实战教程也可以访问 https://www.itying.com/category-93-b0.html

18 回复

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

更多关于uni-app 手机端上传头像提示 "errMsg": "uploadFile:fail undefined"的实战教程也可以访问 https://www.itying.com/category-93-b0.html


url,我给设置成静态的了,之前是动态的,现在还是报这个错

问题解决: 1.查看url是否存在HTTPS 或http 头。如果不存在就加上。 2.如果使用了宝塔要禁用防火墙,否则会被拦截(拦截分块请求)。 3.检查是否开启了vpn加速器,尤其是全局加速器。(关掉vpn)。

大佬我也碰到这个问题了,请问有解决方案吗

我也遇到了,咋都没人回复呢?

我也遇到子,postman正常上传成功, uniapp uploadFile 一直走进 fail里面, 完全按官方示例写的, 提示:uploadFile:fail undefined

@DCloud_UNI_GSQ
我用的版本是:3.1.2.20210206,
我也遇到了,postman正常上传成功, uniapp uploadFile 一直走进 fail里面, 完全按官方示例写的, 提示:uploadFile:fail undefined

复现示例和操作步骤提供一下

遇到同样的问题,求解.

版本也是20210206 在微信开发者工具上面能够正常运行 我现在也碰到了同样的问题,选择图片的步骤: chooseImage() { uni.chooseImage({ count: 1, success: res => { this.tempFilePath = res.tempFilePaths[0]; } }); }, 上传图片步骤: uploadTheImg(imgFiles) { uni.uploadFile({ url: “http://localhost:5000/upload/”, filePath: imgFiles, name: ‘file’, success: res => { console.log(“success”) console.log(res) }, fail: err =>{ console.log(err) console.log(imgFiles) } }) }, 报错:15:17:48.632 [Object] {“errMsg”:“uploadFile:fail undefined”} at pages/picture/picture.vue:52 15:17:48.652 _doc/uniapp_temp_1614064629039/camera/1614064650074.jpg at pages/picture/picture.vue:53 看起来接口并没有被调用,个人感觉是图片的路径问题,但是不知道后续要怎么修改

完整的复现示例和操作步骤提供一下

回复 DCloud_UNI_GSQ: 目前版本还是一样的错误

回复 神缘叔: 完整的复现示例和操作步骤提供一下

这问题无解了么,我的情况差不多,是上传到阿里云,一直这个错,没有办法解决

大文件 uploadFile:fail 什么原因。 大概80M左右,文件小点就没问题。

这个错误通常是由于uni-app在移动端环境未正确初始化上传API导致的。以下是可能的原因和解决方案:

  1. 检查是否在manifest.json中配置了上传权限:
"app-plus": {
    "upload": {
        "timeout": 60000
    }
}
  1. 确保使用了正确的API调用方式:
uni.chooseImage({
    success: (res) => {
        uni.uploadFile({
            url: '你的上传接口',
            filePath: res.tempFilePaths[0],
            name: 'file',
            success: (uploadRes) => {
                console.log(uploadRes);
            }
        });
    }
});
  1. 常见问题排查点:
  • 确认HBuilderX是最新版本
  • 检查Android模拟器网络连接是否正常
  • 尝试真机调试看是否复现
  • 检查上传接口是否支持跨域
  1. 如果问题依旧,可以尝试:
// 先确认API是否存在
if(typeof uni.uploadFile === 'function'){
    // 执行上传
} else {
    console.error('uploadFile API不可用');
}
回到顶部