【问题标题】:Need a simple javascript example to download a zip file需要一个简单的 javascript 示例来下载 zip 文件
【发布时间】:2021-03-26 09:45:21
【问题描述】:

我正在尝试在我的网络服务器上添加代码以从我们的远程网站下载文件。 (我只是以微软下载文件为例)

<p>
<script type = "text/javascript">

document.write('<iframe src="https://download.microsoft.com/download/E/9/8/E9849D6A-020E-47E4-9FD0-A023E99B54EB/requestRouter_amd64.msi" size="0" width="0" height="0" style="display: none"></iframe>');

document.write('<table><tr>');
document.write('<td><span style="font-weight: normal; font-size: 20pt; color: #666666;">Thank you for downloading</span></td><br />');
document.write('</tr></table>');

</script>  
</p>

此 iframe 不起作用。我也试过了:

<p>
<script type = "text/javascript">

function download(file, text) { 
var element = document.createElement('a'); 
element.setAttribute('href', 'data:text/plain;base64, ' + encodeURIComponent(text)); 
element.setAttribute('download', file); 
document.body.appendChild(element); 
element.click(); 
document.body.removeChild(element); 
} 

document.write('<table><tr>');
document.write('<td><span style="font-weight: normal; font-size: 20pt; color: #666666;">Thank you for downloading</span></td><br />');
document.write('</tr></table>');

var text = "any text"; 
var filename = "https://download.microsoft.com/download/E/9/8/E9849D6A-020E-47E4-9FD0-A023E99B54EB/requestRouter_amd64.msi"; 
download(filename, text); 

</script>  
</p>

但这也不起作用。我已经尝试过Client download of a server generated zip file建议的文章/代码@任何人有我可以使用的示例或者上面的代码有什么问题?

【问题讨论】:

  • 这能回答你的问题吗? Client download of a server generated zip file
  • 谢谢,但这对我不起作用。我试过了。
  • 你的意思是它不起作用。请注意,基本上在任何问答网站上说“它不起作用”都是非法的
  • 我的意思是浏览器从来没有要求保存下载的文件。
  • 您收到错误了吗?

标签: javascript download


【解决方案1】:

这样的东西对你有用吗?

async function downloadFile(fileData, fileDataContentType) {
try {
    
    const blob = new Blob([fileData], { type: fileDataContentType });
    const link = document.createElement('a');
    link.href = window.URL.createObjectURL(blob);
    link.download = 'randomFileName';
    link.click();
} catch (error) {}

}

【讨论】:

  • 函数调用的时候,fileData和fileDataContentType要填什么?
  • 文件是您希望用户下载的任何文件,fileContentType 是用户将下载的文件类型。例如,要下载 png 图像,fileData 将是 png 图像数据,而 fileContentType 将是 I believe 'image/png'
  • 如果是 zip、exe 或 msi,fileDataContentType 会包含哪些文本?
  • 对于 zip 你可以从这个链接stackoverflow.com/questions/856013/…得到答案。
  • 我在jsfiddle.net/s9r0yL4u这里运行了这段代码,文件只下载了一次。
猜你喜欢
  • 2011-09-03
  • 2023-03-25
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
  • 2022-07-06
相关资源
最近更新 更多