1. //方法一
  2. const url = 'data:image/png;base64,xxxxx';
  3. fetch(url)
  4. .then(res => res.blob())
  5. .then(blob => {
  6. const file = new File([blob], "File name",{ type: "image/png" })
  7. console.log('fileObj',file);
  8. });
  9. //方法二
  10. function dataURLtoFile(dataurl, filename) {
  11. var arr = dataurl.split(','),
  12. mime = arr[0].match(/:(.*?);/)[1],
  13. bstr = atob(arr[1]),
  14. n = bstr.length,
  15. u8arr = new Uint8Array(n);
  16. while (n--) {
  17. u8arr[n] = bstr.charCodeAt(n);
  18. }
  19. return new File([u8arr], filename, {
  20. type: mime
  21. });
  22. }
  23. //Usage example:
  24. var file = dataURLtoFile('data:image/png;base64,xxxxxx', 'hello.txt');
  25. console.log(file);

参考

使用 Fetch Data URLs 不同文件类型转base64后的前缀 base64图片的前缀是可以随便修改的吗? DATA URL简介及DATA URL的利弊