我有一个链接,允许我在我的网页中下载文本文件,但问题是我希望用户能够选择保存文件的位置我的意思是当他点击链接时应该打开一个窗口所以他可以将文件保存在他喜欢的任何地方,任何人都可以告诉我该怎么做?谢谢 。 这是我的代码的一部分:
$fichierres=fopen('res.txt','a');
ftruncate($fichierres,0);
...
fputs($fichierres, $t."\r\n");
...
fclose($fichierres);
echo' <div style="text-align:center"><br> <button id="download" width="100px" class="styled-button-8"><a href="res.txt" download="res.txt" style="color: #FFFFFF"><b>Download</b></a></button></div><br>';
答案 0 :(得分:0)
大多数浏览器会自动打开他们可以阅读的任何文件 - 确切地说它们应该如何工作。这包括.txt文件,您无法阻止此操作。
您可以做的是将链接作为主播(<a href="/myfile.txt">Download</a>
)提供,并在链接旁边提供一条消息,告诉用户&#34;右键单击/保存链接为...&#34;下载 - 这将允许他们保存文件而不是下载。
右键菜单中的确切选项在浏览器之间会有所不同,但它始终与&#34;将链接另存为...&#34;
相似。答案 1 :(得分:0)
http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html
19.5.1内容处理
Content-Disposition response-header字段已被提议为 表示如果用户,原始服务器建议默认文件名 请求将内容保存到文件中。导出此用法 来自RFC 1806 [35]中Content-Disposition的定义。
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm ) disposition-type = "attachment" | disp-extension-token disposition-parm = filename-parm | disp-extension-parm filename-parm = "filename" "=" quoted-string disp-extension-token = token disp-extension-parm = token "=" ( token | quoted-string )
一个例子是
Content-Disposition: attachment; filename="fname.ext"
在PHP中,您将使用header
函数发送此标头。请注意,必须在发送任何数据之前调用此方法。
header('Content-Disposition: attachment; filename="fname.ext"');