Javascript触发浏览器外部的下载

时间:2015-09-24 22:11:04

标签: javascript file sockets browser download

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

我有一个Html页面,它不在服务器上,但只能用作数字标牌查看器。服务器(已经存在)通过TCP套接字发送播放列表(服务器有点旧)告诉客户端需要从媒体应该呈现的位置和位置下载哪些媒体。

Javascript客户端代码与Tomcat服务器之间的通信暂时无关紧要。我想知道的是,有没有办法将文件下载到某个目录而不让浏览器下载文件(问题 - >下载弹出窗口 - >确认 - >无法预设不同的下载文件夹等。使用Javascript),以便我可以在下载后设置媒体标签的来源?

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

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

干杯 克里斯

2 个答案:

答案 0 :(得分:0)

您可以将内容发送到Web服务器并将其返回到具有指定类型/文件名的浏览器。例如,在PHP中,您可以执行以下操作:

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

另一个选择是这个漂亮的JavaaScript库,它允许您在客户端保存一些内容: https://github.com/koffsyrup/FileSaver.js

它允许您在浏览器中执行以下操作:

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

您可能还希望将自己的内容存储在浏览器localStoragesessionStorage中。

答案 1 :(得分:0)

  

我想知道的是,如果有办法将文件下载到某个目录而不让浏览器下载文件

如果可能的话,它会打开安全漏洞,因为它可以将特殊文件(如程序)放入特殊文件夹(如自动启动),然后导致不必要的代码执行。由于安全问题,希望这是不可能的。