李耶不耶
李耶不耶
  • 发布:2020-07-27 09:44
  • 更新:2023-08-28 07:05
  • 阅读:16354

app端使用uni.uploadFile上传图片,提示"errMsg": "uploadFile:fail undefined"上传失败

分类:uni-app

app端使用uni.uploadFile上传单张图片,提示"errMsg": "uploadFile:fail undefined"上传失败,h5可以正常上传
之前还可以正常上传的,最近测试突然出现这个问题,hbuilderX版本是2.6.16

 uni.uploadFile({  
                                url: that.$url.request_url + '/admin/sys-file/upload',  
                                filePath: tempFilePaths[0],  
                                name: 'file',  
                                header: {  
                                    'Authorization': 'Bearer ' + uni.getStorageSync('ac_token'),  
                                    'TENANT-ID': uni.getStorageSync('tenant_id') || "",  
                                    'TEA-ID': uni.getStorageSync('deptInfo').teaId || '',  
                                    'DEPT-ID': uni.getStorageSync('deptInfo').deptId || '',  
                                    'is-app': 0  
                                },  
                                success: (uploadFileRes) => {  
                                    console.log(uploadFileRes.data);  
                                },  
                                fail: (err) =>{  
                                    console.log(err);  
                                    uni.showModal({  
                                        content: err.errMsg,  
                                        showCancel: false  
                                    });  
                                }  
                            });
2020-07-27 09:44 负责人:无 分享
已邀请:
knight0617

knight0617

我的是因为api地址写的localhost,要用本机ip,不能用localhost或者127.0.0.1

  • 9***@qq.com

    是的,因为安卓模拟器上的localhost与127.0.0.1访问的是模拟器上安卓系统本地的回环地址,并不是宿主环境(例如windows)的。

    2021-03-03 15:13

2***@qq.com

2***@qq.com

已经解决了,要把后台服务器地址直接拼在接口地址前面,url不能直接是接口地址

  • wbbs

    可以解决问题

    2021-03-10 15:27

  • 1***@qq.com

    请问怎么解决

    2021-07-09 15:48

  • 累死的炮灰

    拼接了还是一样报错,

    2021-10-13 08:51

9***@qq.com

9***@qq.com

我今天也遇到了,其实主要是网络问题。例如我的开发服务器是在本地虚拟机上搭建的,访问域名为http://kkyn.test,使用windows本地host把域名映射到开发服务器ip(192.168.10.10),这个时候你的APP试运行在安卓模拟器里面的,相当于是另一台设备,在这台设备上访问http://kkyn.test肯定会报错,因为安卓模拟器里面的系统并不知道kkyn.test这个域名是映射到本地开发服务器的,所以需要在电脑上搭建一个代理服务器(使用apache即可),然后设置安卓模拟器里面安卓系统的虚拟WiFi代理地址,这个时候就正常了。

  • 1***@qq.com

    什么意思

    2021-07-09 15:53

  • 吾逍遥

    回复 1***@qq.com: 就是说若是本机搭建虚拟域名,其实只代表127.0.0.1,在真实网络中它不会等于你真实地址,所以网络中其它设备无法解释这个域名对应什么,很简单办法就是换成Ip地址即可,如上面解释的http://192.168.10.10,若是在互联网要换成你对外IP

    2021-11-12 12:45

459114173

459114173 - 90IT

相同的问题,还没有官方人员来解决

3***@qq.com

3***@qq.com

我也解决了,不知道有没有人和我一样的错:
1、定义了全局拦截器拦截uni.request拼接请求地址,但忽略了这个并不是uni.request请求,不能被拦截器拦截,从而导致请求地址不正确;
2、调试的时候后台用的是localhost,这个地址在手机中是无法访问的。

1***@qq.com

1***@qq.com

我的也出现了,版本2.8.8.20200820

j***@163.com

j***@163.com

2.8.8.20200820 也是 有没有官方出来解决一下

hi油菜花

hi油菜花

同2.8.8.20200820

  • 1***@qq.com

    https://ask.dcloud.net.cn/question/77248

    试试这个方法把插件里面crypto.js 106行注释掉

    if (typeof btoa == "function") return btoa(util.bytesToString(bytes));

    2020-08-31 17:48

1***@qq.com

1***@qq.com

2.8.8.20200820,app端一样报错uploadFile:fail undefined

  • 2***@qq.com

    你好请问这个问题解决了吗

    2022-08-15 18:24

李耶不耶

李耶不耶 (作者)

我现在版本是2.8.6,没这个问题了

清风养马

清风养马

2.8.13.20200927目前还有这个问题,不知道大家现在都解决了吗

迟暮

迟暮 - 简简单单,轻松干活

上传的url地址需要填写完整,app端不会自动识别添加前缀,亲测有效
这个小问题我还找了两天 真心累了
分享解决方法给大家

url = getConfig().root + url;

uni.uploadFile({
url,
filePath: imagePath,
name,
formData: {...data},
success: (res) => {
success && success(res);
},
fail: (e) =>{
fail && fail(e);
}
})

1***@qq.com

1***@qq.com

大家找到问题原因了吗 我2.9.3还是有这个问题

FuyuumiAi

FuyuumiAi - 做更好的自己。

我2.9.8还是有这个问题

1***@qq.com

1***@qq.com

这个URL是怎么来的?

1***@qq.com

1***@qq.com

在浏览器从调试可以上传成功 打包成app在pad端就不行了

  • 1***@qq.com

    请问你解决了吗?

    2021-02-04 21:20

2***@qq.com

2***@qq.com

我也是呀,浏览器中可以上传,app里面上传失败,怎么解决???

  • 3***@qq.com

    您好请问解决了吗

    2022-11-23 10:30

mw515

mw515

我也遇到问题了 HBX版本3.8.13 现在卡着了 请问怎么解决

  • xiaoya

    你好,这个问题你解决了吗

    2021-07-23 17:13

xiaoya

xiaoya

有人解决的吗,我也遇到这个问题

a***@163.com

a***@163.com - 一个程序员

还是没有解决么

9***@qq.com

9***@qq.com

2021年啦。我还有这个问题,官方不管啦吗

  • a***@163.com

    我解决了,我的是因为后台有个配置不正确,但是查了好久才找到,说明这玩意功能没有毛病,但是他的错误提示有毛病

    2021-08-26 09:51

2***@qq.com

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

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

2***@qq.com

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

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

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

  • 5***@qq.com

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

    2022-07-12 21:45

7***@qq.com

7***@qq.com

太坑了,以为是后端的问题,后端找了一天,然后发现是前端的问题,上面的回答都不靠谱,我现在的解决办法就是在fail回调里面重试一次

  • 伴你白首

    啊?回调里面重新上传一次吗

    2022-09-16 11:33

  • 3***@qq.com

    回复 伴你白首: 你好,请问解决了没,我是浏览器可以上传真机打包就不行了

    2022-11-23 10:31

  • pddShell

    回复 3***@qq.com: 请问解决了吗

    2023-03-27 10:41

  • 4***@qq.com

    本地测试可以,打包后真机测试不行,请问怎么解决

    2023-07-05 18:05

那种事情不要哇

那种事情不要哇

原来是因为url不能只写接口名字,比如直接写/upload/image不行,要直接把全部的接口写下来比如https://www.example.com/upload

1***@qq.com

1***@qq.com

上传大文件会报这个错,而且同时会触发uni.onsocketerror

要回复问题请先登录注册