为了账号安全,请及时绑定邮箱和手机立即绑定

强制使用PHP下载文件

强制使用PHP下载文件

PHP
PIPIONE 2019-06-23 14:36:28
强制使用PHP下载文件我的服务器上有个CSV文件。如果一个用户点击一个链接,它应该下载,但相反,它打开在我的浏览器窗口。我的代码如下所示<a href="files/csv/example/example.csv">     Click here to download an example of the "CSV" file</a>这是一个普通的Web服务器,在这里我有我所有的开发工作。我试过这样的方法:<a href="files/csv/example/csv.php">     Click here to download an example of the "CSV" file</a>现在我的内容csv.php档案:header('Content-Type: application/csv');header('Content-Disposition: attachment; filename=example.csv');header('Pragma: no-cache');现在我的问题是它正在下载,而不是我的CSV文件。它创建一个新文件。
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

或者你可以使用HTML 5来完成这个任务。简单地

<a href="example.csv" download>download not open it</a>


查看完整回答
反对 回复 2019-06-23
?
大话西游666

TA贡献1817条经验 获得超14个赞

这不可能可靠地完成,因为应该由浏览器来决定如何处理它被要求检索的URL。

你可以的建议它应该通过发送内容配置头立即提供“保存到磁盘”的浏览器:

header("Content-disposition: attachment");

我不知道不同的浏览器对此支持得有多好。另一种方法是发送内容类型的应用程序/八进制流,但这是一种黑客攻击(基本上是告诉浏览器“我没有告诉您这是什么类型的文件”,并且取决于大多数浏览器随后将提供下载对话框的事实),并且据称会给InternetExplorer带来问题。

网页创作常见问题。

编辑您已经切换到一个PHP文件来传递数据-这是设置内容配置头所必需的(除非有一些神秘的Apache设置也可以这样做)。现在剩下的就是让PHP文件读取CSV文件的内容并打印出来-filename=example.csv在标头中,只向客户端浏览器建议文件使用什么名称,它实际上并不从服务器上的文件中获取数据。


查看完整回答
反对 回复 2019-06-23
  • 3 回答
  • 0 关注
  • 390 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信