H5W3
当前位置:H5W3 > 其他技术问题 > 正文

【Web前端问题】遇到一个关于上传多张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

回答:

var fd = new FormData(obj);
var blob = dataURItoBlob (base64,'mimeString');
fd.append("file", blob, file.name);

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

本文地址:H5W3 » 【Web前端问题】遇到一个关于上传多张base64图片的问题,想先将base64图片转成blob对象,然后放入formdata中上传给后台

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址