uni-app钉钉小程序选择文件上传时无法获取文件大小,导致下载的文件无法打开

uni-app钉钉小程序选择文件上传时无法获取文件大小,导致下载的文件无法打开

操作步骤:

  • 点击input标签获取文件

预期结果:

  • 能获取到文件大小,下载下来可以打开

实际结果:

  • 钉钉小程序通过选择文件的方式来上传文件获取不到文件大小,导致上传的文件下载下来无法打开

bug描述:

  • 钉钉小程序通过选择文件的方式来上传文件获取不到文件大小
信息类别 内容
产品分类 uniapp/小程序/阿里
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows10
HBuilderX类型 正式
HBuilderX版本号 3.1.17
第三方开发者工具版本号 0.504
基础库版本号 0.504
项目创建方式 HBuilderX

Image Image

App下载地址或H5网址:


更多关于uni-app钉钉小程序选择文件上传时无法获取文件大小,导致下载的文件无法打开的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app钉钉小程序选择文件上传时无法获取文件大小,导致下载的文件无法打开的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题是由于钉钉小程序平台在文件选择时,返回的文件对象缺少 size 属性导致的。在 uni-app 中,uni.chooseFileuni.chooseImage 等 API 返回的文件信息依赖于小程序平台自身的实现。钉钉小程序目前返回的文件对象可能不包含 size 属性,导致后续上传或处理时无法正确获取文件大小,从而影响文件完整性。

解决方案:

  1. 使用临时文件路径上传
    如果仅用于上传,可以直接使用 tempFilePath(钉钉小程序会返回该路径),通过 uni.uploadFile 上传。钉钉小程序内部会处理文件流,无需手动获取 size

    uni.chooseFile({
      success: (res) => {
        const tempFilePaths = res.tempFilePaths; // 获取临时文件路径
        uni.uploadFile({
          url: 'your_server_url',
          filePath: tempFilePaths[0],
          name: 'file',
          success: (uploadRes) => {
            console.log('上传成功', uploadRes);
          }
        });
      }
    });
回到顶部