Javascript触发器在浏览器外下载

Javascript trigger download outside of browser

本文关键字:下载 浏览器 触发器 Javascript      更新时间:2023-09-26

在浏览器外触发下载的最佳方式是什么?

我有一个Html页面,它不是在服务器上,但应该只作为一个数字标牌查看器。服务器(已经存在)通过TCP套接字发送一个播放列表(服务器有点老),告诉客户端它需要从哪里下载什么媒体以及媒体应该在哪里呈现。

Javascript Client代码和Tomcat服务器之间的通信现在是不相关的。我想知道的是,如果有一种方法可以将文件下载到某个目录,而不让浏览器下载文件(问题->下载弹出窗口->确认->不能用Javascript预设不同的下载文件夹等),这样我就可以在下载后设置媒体标签的来源?

(如果你问我为什么不简单地流式传输媒体,这是因为如果连接丢失,媒体仍然需要继续播放)

我真的希望我的解释有意义。

干杯短剑

您可以将内容发送到web服务器,并以指定的类型/文件名返回给浏览器。例如,在PHP中,你可以这样做:

header('Content-type: text/html');
header('Content-disposition: attachment;filename=myfile.txt'); 

另一个选择是这个很好的javascript库,它允许你在客户端保存一些内容:https://github.com/koffsyrup/FileSaver.js

它允许你在浏览器中做这样的事情:

saveTextAs("Hi,This,is,a,CSV,File", "test.csv"); 

您可能还想将您的内容存储在浏览器的localStoragesessionStorage

我想知道的是是否有一种方法可以将文件下载到某个目录而不让浏览器下载文件

如果这是可能的,它将打开一个安全漏洞,因为它可能会把特殊文件(如程序)放入特殊文件夹(如autostart),然后导致不必要的代码执行。