遇到一个关于上传多张base64图片的问题,想先将base64图片转成blob对象,然后放入formdata中上传给后台

第一步转为blob对象没问题:
function dataURItoBlob (base64Data) {

var byteString;
if (base64Data.split(',')[0].indexOf('base64') >= 0){
  byteString = atob(base64Data.split(',')[1]);
}else{
  byteString = unescape(base64Data.split(',')[1]);
}
var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
    ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type:mimeString});

}
但是第二步将blob对象放入到formdata中感觉不对:

var fd = new FormData(obj);
var blob = dataURItoBlob (base64,'mimeString');
fd.append("files[]", blob);
当我用ajax上传给后台的时候,报错405
阅读 4.5k
1 个回答
var fd = new FormData(obj);
var blob = dataURItoBlob (base64,'mimeString');
fd.append("file", blob, file.name);

当第二个参数是blob对象时,第三个参数如果不传,默认是'blob'
参考MDN - FormData

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题