图片裁剪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 位网友评论: