Javascript JQuery链接下载一个txt文件

时间:2009-12-10 17:08:24

标签: javascript jquery

有没有办法'强制'浏览器下载文件而不是打开文件?

<a href="file.txt">Download this file</a>

我已经使用window.open(“file.txt”,“Download”)通过js尝试了这个方法;

但没有成功。

THX。

更新

我已经完成了如下的php文件;

<html>
<a href='dl.php?bid=3'>

<php>
$sql="select barquivo from bibilioteca where bid=$_GET[bid]";
$row=mysql_fetch_assoc(mysql_query($sql));
header("Content-Disposition: attachment;filename=biblioteca/$row[barquivo]");

它下载一个带有0字节的文件“biblioteca_”。

5 个答案:

答案 0 :(得分:4)

您应该在服务器端执行此操作。

如果您发送

Content-type: application/octet

Content-disposition: attachment; filename=file.txt

标题然后将提示用户下载。

答案 1 :(得分:2)

不是在javascript级别。通过更改所服务内容的Mime类型,您可以对用户代理(浏览器)将尝试执行的操作进行大量控制 - 可以从Web服务器或服务器端应用程序完成。

这意味着,您的“.txt”文件将以

发送到浏览器
Content-Type: text/plain 

http标头。 相反,如果它提供:

Content-Type: application/octect-stream 
相反,

http标头,很可能会提示用户保存文件 (无论文件名或扩展名如何)

答案 2 :(得分:1)

据我所知,无法在纯Javascript中完成。您必须发送相应的服务器端头。

如果您可以使用Apache的.htaccess设置(更容易)或PHP(更复杂,因为您必须通过PHP解析txt文件,或者引入PHP脚本来传递文件),可以参考here给出的接受答案。

答案 3 :(得分:1)

服务器由send the appropriate header决定。

Content-Disposition: attachment;filename=schmoo.mp3

答案 4 :(得分:1)

对于那些通过链接查看d / l文件的人来说,这是最好的解决方案

PHP: Force file download and IE, yet again

by ballou