2017-08-22 20 views
0

如何为base64字符串转换为文件对象的Javascript应在IE浏览器中运行如何的base64字符串转换为文件对象的Javascript应在IE浏览器中运行

function dataURLtoFile(dataurl: any, filename: string) { 
     var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], 
      bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); 
     while (n--) { 
      u8arr[n] = bstr.charCodeAt(n); 
     } 
     return new File([u8arr], filename, { type: mime }); 
} 

这在IE浏览器边缘不工作。

+0

https://stackoverflow.com/questions/16968945/convert-base64-png-data-to-javascript-file-objects – chiliNUT

回答

0

阅读大量教程后,我发现,斑点也被视为文件的结论,我们可以张贴BLOB插入FORMDATA。

var base64data = window.localStorage.getItem("img").replace("data:image/png;base64,", ""); 
     var bs = atob(base64data); 
     var buffer = new ArrayBuffer(bs.length); 
     var ba = new Uint8Array(buffer); 
     for (var i = 0; i < bs.length; i++) { 
      ba[i] = bs.charCodeAt(i); 
     } 
     var file = new Blob([ba], { type: "image/png" }); 
0

补充一点:

<script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script> 

这增加了JS保持兼容到老的浏览器

+0

谢谢...一月,但我使用Angular2。那么还有没有其他办法可以做到这一点。 –

+0

这没有帮助? –

相关问题