'content-type': 'multipart/form-data'

- 发布:2022-04-28 16:48
- 更新:2022-04-29 10:10
- 阅读:895
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.4.7
浏览器平台: Chrome
浏览器版本: 100.0.4896.127
项目创建方式: HBuilderX
操作步骤:
预期结果:
'content-type': 'multipart/form-data'
'content-type': 'multipart/form-data'
实际结果:
'content-type': 'multipart/form-data'
'content-type': 'multipart/form-data'
bug描述:
uni.uploadFile H5 上传增加表单头 multipart/form-data 会导致后端接收不到文件 不添加表单头 苹果ios无法上传文件??

呆狗的一生 - 呆狗的一生
不用添加任何header (token除外) ,因为uploadFile会帮你处理好的。
export function upload(options) {
options.header = Object.assign({
[config.tokenKey]: token.get()
}, options.header);
options.url = config.apiUrl + options.url;
return uni.uploadFile(options).then(res => {
// 注意data为string
return JSON.parse(res.data).data;
}).catch(err => {
console.log(err.message);
return err;
});
};
-
-
-
-
-
yancheng909 (作者)
回复 呆狗的一生: 不添加content-type': 'multipart/form-data' 后端没有问题,添加了content-type': 'multipart/form-data' 后端接收为空 中间没有其他代码修改
2022-04-29 10:06

yancheng909 (作者) - 热爱i编程小白
插件
<uni-file-picker title="请上传图片作品(10m以下)" v-model="imageValue" file-mediatype="image"
file-extname="png,jpg,gif" ref='files' :limit="1" @select="select"
@delete="deletefile" />
js
uni.uploadFile({
url: url + '/Upload/upload',
filePath: e.tempFilePaths[0],
name: 'file',
header: {
'content-type': 'multipart/form-data'
},
formData: {
'images': e.tempFilePaths[0]
},
success: function(res) {
}
});

呆狗的一生 - 呆狗的一生
if (files.length) imgUrls = await this.upload({
filePath: files.map(_ => _.path).join(','),
name: 'filelist',
url: '/tencent/putArray',
fileType: 'image/video/audio',
formData: { pathPrefix: this.pathPrefix }
})
这里的this.upload是上面我贴的upload方法,formData我给出的是一个存储图片的路径前缀。我的header里只加了一个用于检查登录的token
BoredApe
你可以打断点看看
H5
传递给uploadFile
的参数是否正确2022-04-28 16:53
yancheng909 (作者)
回复 BoredApe: 参数应该是正常的 因为去掉header h5 安卓都可以上传(后端也可以接收),ios的话没有表单头的情况下 选择图片会提示格式错误,参考了网上说必须要增加'Content-Type': 'multipart/form-data' ;增加后可以选择图片了 临时路径也有了 但是提交到后端,后端接收不到了(后端同样代码 安卓可以接收)
2022-04-28 17:41
yancheng909 (作者)
回复 yancheng909: 苹果手机h5 提交都不行
2022-04-28 17:43
BoredApe
回复 yancheng909: 写一个测试工程发上来
2022-04-28 17:52
yancheng909 (作者)
回复 BoredApe: 加了表单头 好像数据就不是二进制流了
2022-04-29 10:58