h***@outlook.com
h***@outlook.com
  • 发布:2025-11-08 20:09
  • 更新:2025-11-14 15:18
  • 阅读:184

【报Bug】uploadFile上传成功返回fail

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 版本 Windows 10 专业版 版本号 22H2 安装日期 ‎2021/‎6/‎11 OS 内部版本 19045.6456

HBuilderX类型: 正式

HBuilderX版本号: 4.85

浏览器平台: Chrome

浏览器版本: 版本 142.0.7444.60(正式版本) (64 位)

项目创建方式: HBuilderX

操作步骤:

提交上传就会有

预期结果:

成功上传拿到数据

实际结果:

成功上传未拿到数据

bug描述:

uni.uploadFile上传文件网络请求成功并返回了,但是返回uploadFile:fail file error,走不到success,前几天是可以正常使用的,hbuilderx4.85版本,我怀疑是版本问题,我又回退了一个版本还是一样。

2025-11-08 20:09 负责人:无 分享
已邀请:
DCloud_UNI_JBB

DCloud_UNI_JBB

发个可复现demo

5***@qq.com

5***@qq.com - 524176336

遇到了同样的问题 几乎肯定是uniapp的问题,影响到线上环境了!!!

  • DCloud_UNI_JBB

    你的代码怎么写的?

    2025-11-14 14:57

  • DCloud_UNI_JBB

    uploadFile相关的

    2025-11-14 14:57

  • 5***@qq.com

    回复 DCloud_UNI_JBB: uni.canvasToTempFilePath({

    canvasId: 'mycanvas',

    success: (res) => {

    let randnum = Math.random() * 10000000000000

    randnum = Math.floor(randnum)

    let fileName = "dianziqianming/" + randnum + '.png'

    let file = that.dataURLtoFile(res.tempFilePath, fileName)


                uni.showLoading({  
    title:'保存中...'
    })
    uni.uploadFile({
    url: that.$api + '/oss/upload',
    filePath: '',
    name: 'file',
    method: 'post',
    file,
    header: {
    'X-Access-Token':uni.getStorageSync(ACCESS_TOKEN),
    },
    success: (res) => {
    uni.hideLoading()
    that.signurl = JSON.parse(res.data).message
    if(that.signurl){
    that.submit()
    } else {
    uni.showToast({
    title: '上传失败,请稍后再试。。。',
    icon: 'error',
    })
    }
    },
    fail(res) {
    uni.hideLoading()
    console.log(res,'错误')
    }
    });
    }
    });

    2025-11-14 14:58

  • 5***@qq.com

    好几年 没动过的代码了 之前都是好好的

    2025-11-14 14:58

  • 5***@qq.com

    直接走到 fail(res) 但是网络请求是走通的

    2025-11-14 14:59

  • DCloud_UNI_JBB

    回复 5***@qq.com: filePath和files不能同时为空,必须要设置一个

    2025-11-14 14:59

  • 5***@qq.com

    请求网址

    http://xxx.xxx.xxx/oss/upload

    请求方法

    POST

    状态代码

    200 OK

    2025-11-14 15:00

  • 5***@qq.com

    回复 DCloud_UNI_JBB: 之前都是这样跑的 ,那我改下试试

    2025-11-14 15:01

  • 5***@qq.com

    回复 DCloud_UNI_JBB: 改为 files 后问题解决 多谢

    2025-11-14 15:04

  • DCloud_UNI_JBB

    回复 5***@qq.com: 不客气

    2025-11-14 15:10

  • 5***@qq.com

    回复 DCloud_UNI_JBB: 但我没懂 为什么 file 不支持 我看文档还是支持的 uni.uploadFile({


    url: that.$api + '/oss/upload',


    name: 'file',


    method: 'post',


    file,


    header: {


    'X-Access-Token':uni.getStorageSync(ACCESS_TOKEN),


    },


    success: (res) => {


    uni.hideLoading()


    that.signurl = JSON.parse(res.data).message


    if(that.signurl){


    that.submit()


    } else {


    uni.showToast({


    title: '上传失败,请稍后再试。。。',


    icon: 'error',


    })


    }


    },


    fail(res) {


    uni.hideLoading()


    console.log(res,'错误')


    }


    }); 这种方法 为什么不行 我把 filePath 也去掉了 ,而且之前一直都是好的,是你们破坏性更新了?

    2025-11-14 15:12

  • DCloud_UNI_JBB

    回复 5***@qq.com: 之前这里有bug,不按照文档规范,filePath 和 files 都不设置也能成功上传,最新的版本修复了

    2025-11-14 15:13

  • 5***@qq.com

    回复 DCloud_UNI_JBB: 不是啊,单文件上传,为什么只写file不行,文档说h5环境是支持的啊。file这个参数是在什么情况起效?

    2025-11-14 15:16

DCloud_UNI_JBB

DCloud_UNI_JBB

框架源码

  • jgj_app

    h5 uploadFile file 跟 filePath 都传了 ,以哪个为准,以file 为主么,

    2025-11-26 11:03

  • DCloud_UNI_JBB

    回复 jgj_app: filePath

    2025-11-26 11:09

  • jgj_app

    回复 DCloud_UNI_JBB: 那 file 参数的意义是什么,filePath用 canvas 压缩在上传又拿不到文件后缀

    2025-11-26 11:18

  • DCloud_UNI_JBB

    回复 jgj_app: 传files试试

    2025-11-26 13:38

要回复问题请先登录注册