图片裁剪base64编码生成file文件上传,兼容IE浏览器
在使用图片裁剪工具的时候,裁剪后的图片是base64编码,如果我们以base64直接提交给后台,特别是图片大的时候会报Warning: POST Content-Length of XXXXX bytes exceeds the limit of XXXXX bytes in Unknown on line 0。
使用js的file对象提交没事,但IE不兼容,这个时候需要用Blob转换下。
下面是兼容版的图片base64转file,可以使用这个直接提交后台,后台正常接受file类型数据处理即可。
/**
*图片base64转file文件上传
*@param string base64Str 图片的base64字符串
*@param string filename 图片的名称
*/
function base64ToFiles(base64Str, filename) {
filename = filename || "file";
var arr = base64Str.split(','),
mime = arr[0].match(/:(.*?);/)[1],
suffix = mime.split('/')[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while(n--){
u8arr[n] = bstr.charCodeAt(n);
}
var theBlob=new Blob([u8arr],{type:mime});
theBlob.lastModifiedDate=new Date();
theBlob.lastModified=theBlob.lastModifiedDate;
theBlob.name=filename+"."+suffix;
return {"file":theBlob,"name":filename+"."+suffix};
}




有 0 位网友评论: