在使用云开发的 HTTP API 的时候遇到了个问题,就是上传的图片大小最大只能到 6.4KB 左右。在使用axios或者原生ajax上传的时候,小一点的就可以上传成功,但是大一点的就直接返回状态码 400 Bad Request 。在使用Element UI的上传组件的时候,超过6.4KB的图片也能上传,但是在云存储那里的文件大小只有6.4KB左右。
状态码为400时返回的错误描述:
< Code >MalformedPOSTRequest</ Code > < Message >The body of your POST request is not well-formed multipart/form-data.</ Message > |
使用uploadFile获取到了上传用的URL后进行上传的关键代码:
var form = new FormData(); form.append( 'file' , file); form.append( 'key' , this .uploadEnv.path); form.append( 'Signature' , res.authorization); form.append( 'x-cos-security-token' , res.token); form.append( 'x-cos-meta-fileid' , res.cos_file_id); axios.post(uploadUrl, form, { timeout: 60*1000, headers: { "Content-Type" : "multipart/form-data;charset=UTF-8" } }).then((res)=>{ }); |
(uploadUrl是获取到的上传用的URL进行了代理处理后的url)
不知道是我的用法有问题还是在哪里不经意间被限制了大小?
楼主解决了么 我使用java掉的api也是只能传4 5k大小的东西
我也是一模一样的错误,请求官方解决
我也遇到同样的问题,请问你解决了吗?
直接用获取到的文件上传的话就有这个限制。
要对文件内容进行一番处理才可以正常上传。
处理方法可以查看参考链接里面的上传例子。
参考链接:js文件上传原理(form表单 ,FormData + XHR2 + FileReader + canvas)