云开发 HTTP API uploadFile上传文件时会被限制文件大小吗?
发布于 7 年前 作者 pengjun 9658 次浏览 来自 官方Issues

在使用云开发的 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

不知道是我的用法有问题还是在哪里不经意间被限制了大小?

1 回复

直接用获取到的文件上传的话就有这个限制。

要对文件内容进行一番处理才可以正常上传。

处理方法可以查看参考链接里面的上传例子。

参考链接:js文件上传原理(form表单 ,FormData + XHR2 + FileReader + canvas)

回到顶部