有没有办法'强制'浏览器下载文件而不是打开文件?
<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_”。
答案 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)