m***@126.com
m***@126.com
  • 发布:2026-04-02 13:32
  • 更新:2026-04-02 13:33
  • 阅读:21

【报Bug】在苹果手机夸克浏览器中上传文件,后台收到的文件大小为0KB,其他浏览器正常,安卓手机正常;

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10 22H2

HBuilderX类型: 正式

HBuilderX版本号: 5.06

浏览器平台: 微信内置浏览器

浏览器版本: 夸克(10.6.6.2963(app-260309193126))

项目创建方式: HBuilderX

示例代码:

export const uploadAction = (params) => {

const signHeader = getSignHeader('http://****/uploadFile', params);  

return new Promise((resolve, reject) => {  
    uni.uploadFile({  
        url: 'http://****/uploadFile', //仅为示例,非真实的接口地址  
        filePath: params.formData.files[0].filePath,  
        name: 'files',  
        formData: {  
            'storagePath': params.formData.storagePath,  
            'files': params.formData.files[0].filePath  
        },  
        header: {  
            'X-Access-Token': uni.getStorageSync('ACCESS_TOKEN'),  
            // 'content-type': 'multipart/form-data',  
            ...signHeader  
        },  
        success: (res) => {  
            console.log(res)  
            if (res.statusCode == 200) {  
                resolve(JSON.parse(res.data));  
            } else {  

            }  
        },  
        fail: (err) => {  
            console.log(err)  
            reject(err);  
        }  
    });  
});  

}

操作步骤:

上传文件即可

预期结果:

能正常上传

实际结果:

服务器接受的数据为0

bug描述:

开发H5项目中,在苹果手机的夸克浏览器中,调用uploadFile时上传不了文件;
手机夸克浏览器版本:(10.6.6.2963(app-260309193126))
手机型号:iphone 17,iphone 13 mini
系统版本:26.3.1(a)

2026-04-02 13:32 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

需要补充平台分类: 小程序。请提供HBuilderX版本信息和详细的报错日志。

针对该 bug 反馈,从 DCloud 官方技术支持角度进行评审如下:

反馈质量评估

该反馈包含了基本的 bug 描述、运行环境、代码示例和结果对比,信息较为完整。但存在以下需要补充的关键信息:

  1. 复现步骤过于简略:仅描述"上传文件即可",缺少文件选择环节的具体实现代码(即 params.formData.files[0].filePath 的获取来源)。需要补充是通过 uni.chooseImageuni.chooseFile 还是 <input type="file"> 获取的文件路径。

  2. 缺少关键调试信息:建议补充 Network 面板中请求的 Request Payload 截图,确认 FormData 中文件字段的实际内容,以及浏览器控制台是否有安全策略报错。

  3. 文件对象获取方式未明确:当前代码使用 filePath 参数传递文件路径,在 H5 平台特别是 iOS 夸克浏览器(基于 WebView 内核)中,临时文件路径可能存在访问权限限制。

技术方案建议

根据 uni.uploadFile 官方文档,在 H5 平台(包括各类移动端浏览器)中,uni.uploadFile 支持通过 file 参数直接传入 File 对象,或使用 files 参数传入文件数组(HBuilderX 2.6.15+)。

建议修改代码,尝试使用 files 参数替代 filePath

uni.uploadFile({  
    url: 'http://****/uploadFile',  
    files: [{  
        uri: params.formData.files[0].filePath, // 或直接从 input 获取的 file 对象  
        name: 'files'  
    }],  
    formData: {  
        'storagePath': params.formData.storagePath  
    },  
    header: {  
        'X-Access-Token': uni.getStorageSync('ACCESS_TOKEN'),  
        ...signHeader  
    },  
    success: (res) => { /* ... */ },  
    fail: (err) => { /* ... */ }  
});

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

浏览器兼容性说明

知识库中暂未收录关于 iOS 夸克浏览器特定版本(10.6.6.2963)上传文件大小为 0KB 的明确记录。此类问题通常与浏览器内核(夸克基于 WebView)对 Blob URL 或临时文件路径的处理策略有关。建议同时测试使用原生 <input type="file"> 获取 File 对象后直接上传,验证是否为框架封装层问题。

后续跟进建议

请补充提供:

  1. 文件选择环节的具体实现代码(完整的从选择到上传的调用链)
  2. 夸克浏览器开发者工具中的 Network 请求详情
  3. 测试使用 files 参数替代 filePath 后的结果

如确认是框架在特定浏览器内核下的兼容性问题,我们将纳入后续版本优化计划。

内容为 AI 生成,仅供参考

要回复问题请先登录注册