javascript如何解码保存为base64字符串的文件并下载

时间:2017-02-01 12:08:17

标签: javascript

如何解码base64字符串并从base64字符串下载文件? 以前,我编写了一个文件:

            var strEncoded="";
            file = $('#fileinput1')[0].files[0];

            var reader = new FileReader();
            reader.readAsDataURL(file);
            reader.onload = function () {
                strEncoded = reader.result;
            };

谢谢

2 个答案:

答案 0 :(得分:0)

您可以创建<a>链接并将数据提供给其href。例如,我使用了像这样的数据/图像base64:

<a href="data:image/png;base64,iVBORw0K........" download>Download</a>

download属性可以完成这项工作。

或者只是试试这个:

location.href = strEncoded;

在一个功能中:

download(dataUrl) {
  location.href = dataUrl;
}

<a href="javascript:;" onclick="download(strEncoded);">Download</a>

答案 1 :(得分:0)

请勿使用b64版本,而是直接使用您从输入中获得的File对象。

最新的浏览器确实支持主播的download属性,您只需执行a.href = URL.createObjectURL(yourFile); a.download = 'yourfile.whateverExtension'

对于较旧的浏览器,有一些hacks,都在精美的FileSaver.js库中浓缩。

然后您需要做的就是

var inp = document.querySelector('input');
inp.onchange = function(){
   saveAs(this.files[0], 'yourFile.extension');
  };
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/2014-11-29/FileSaver.js"></script>
<input type="file"/>