上传图片提示 uni-app errMsg uploadFile fail undefined

上传图片提示 uni-app errMsg uploadFile fail undefined

示例代码:

editPhotoAc() {  
    var that = this  
    uni.chooseImage({  
        count: 1,  
        success: (chooseImageRes) => {  
            uni.showLoading({})  
            const tempFilePaths = chooseImageRes.tempFilePaths;  
            uni.uploadFile({  
                url: this.$baseUrl + '/api/common/upload',  
                filePath: tempFilePaths[0],  
                name: 'file',  
                success: (uploadFileRes) => {  
                    console.log(uploadFileRes)  
                    let data = JSON.parse(uploadFileRes.data)  
                    that.userInfo.avatar = data.data.fullurl  
                    uni.hideLoading()  
                },  
                fail: (err) => {  
                    uni.showModal({  
                        content: JSON.stringify(err),  
                        success: (res) => {  

                        }  
                    })  
                    uni.hideLoading();  
                },  
            });  
        }  
    });  
}

操作步骤:

  • 使用uni.chooseImage上传图片,打好apk包后,在三星手机上传图片失败,会提示"errMsg": “uploadFile:fail undefined”,在其他类型手机上则可以正常使用

预期结果:

  • 在三星手机上可以正常上传图片

实际结果:

  • 在三星手机上无法正常上传图片

bug描述:

  • 在三星手机使用apk包,安装的应用在上传图片会报错误"errMsg": “uploadFile:fail undefined”。但是在使用真机运行时,无论是标准基座还是自定义基座均没有问题。而且同一个apk包,在华为、小米等类型的手机上均没有问题,仅仅是三星手机有该问题

| 开发环境           | 版本号   | 项目创建方式 |
|-------------------|---------|--------------|
| PC开发环境操作系统 | Windows |              |
| PC开发环境操作系统版本号 | Windows 10 |              |
| 手机系统           | Android |              |
| 手机系统版本号     | Android 14 |              |
| 手机厂商           | 三星    |              |
| 手机机型           | SM-A145R |              |
| HBuilderX类型      | 正式    |              |
| HBuilderX版本号    | 4.66    |              |
| 页面类型           | vue     |              |
| vue版本            | vue2    |              |
| 打包方式           | 云端    |              |
| 项目创建方式       | HBuilderX|              |

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

6 回复

报错图片

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


我也遇到了相同的问题,突然上传不行了,您这边解决了吗?是什么问题

提供复现工程,并对比测试相同的设置,使用 hellouniapp 里的示例工程是否正常

使用uview2封装的upload请求,在大多数机型上没问题,客户那边反馈在Samsung galaxy 14和Lenovo Tab M9-2023 - Tablet测出上传报上述错误;使用hellouniapp 在pages/api/image/image 里面增加uploadFile客户那边是正常的了,这是什么问题?安卓权限问题吗? uni.$u.http.upload(’/api/common/uploadFile’, { filePath: url, name: ‘file’, }).then((res) => { uni.hideLoading(); resolve(res) }) [ “<uses-permission android:name=“android.permission.CHANGE_NETWORK_STATE”/>”, “<uses-permission android:name=“android.permission.MOUNT_UNMOUNT_FILESYSTEMS”/>”, “<uses-permission android:name=“android.permission.VIBRATE”/>”, “<uses-permission android:name=“android.permission.ACCESS_WIFI_STATE”/>”, “<uses-feature android:name=“android.hardware.camera.autofocus”/>”, “<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE”/>”, “<uses-permission android:name=“android.permission.CAMERA”/>”, “<uses-permission android:name=“android.permission.READ_EXTERNAL_STORAGE”/>”, “<uses-permission android:name=“android.permission.WRITE_EXTERNAL_STORAGE”/>”, “<uses-permission android:name=“android.permission.INTERNET”/>”, “<uses-permission android:name=“android.permission.RECORD_AUDIO”/>”, “<uses-permission android:name=“android.permission.MODIFY_AUDIO_SETTINGS”/>”, “<uses-permission android:name=“android.permission.READ_PHONE_STATE”/>”, “<uses-permission android:name=“android.permission.CHANGE_WIFI_STATE”/>”, “<uses-permission android:name=“android.permission.WAKE_LOCK”/>”, “<uses-permission android:name=“android.permission.FLASHLIGHT”/>”, “<uses-permission android:name=“android.permission.ACCESS_COARSE_LOCATION”/>”, “<uses-feature android:name=“android.hardware.camera”/>”, “<uses-permission android:name=“android.permission.ACCESS_FINE_LOCATION”/>”, “<uses-permission android:name=“android.permission.WRITE_SETTINGS”/>” ]

我也遇到相同的情况,特别是google版本的用户

这是一个典型的Android平台兼容性问题。"uploadFile:fail undefined"错误通常与网络权限、SSL证书配置或特定厂商的系统限制有关。

针对三星手机的解决方案:

  1. 检查网络权限配置 在manifest.json中确保已正确声明网络权限:
"android": {
  "permissions": [
    "<uses-permission android:name=\"android.permission.INTERNET\"/>"
  ]
}
  1. 验证SSL证书兼容性 三星设备对SSL证书验证较为严格,检查服务器证书是否被设备信任。可临时测试HTTP地址确认是否为SSL问题。

  2. 添加超时配置 在uploadFile中增加timeout参数:

uni.uploadFile({
  url: this.$baseUrl + '/api/common/upload',
  filePath: tempFilePaths[0],
  name: 'file',
  timeout: 10000, // 10秒超时
  success: (uploadFileRes) => {
    // ...
  }
});
  1. 检查文件路径处理 三星设备对文件路径解析可能不同,建议添加路径验证:
const tempFilePaths = chooseImageRes.tempFilePaths;
if (!tempFilePaths || tempFilePaths.length === 0) {
  uni.showToast({title: '文件选择失败', icon: 'none'});
  return;
}
回到顶部