【问题标题】:CSV files are opening as a pageCSV 文件作为页面打开
【发布时间】:2012-08-09 14:55:41
【问题描述】:

我是 Web 开发新手,我遇到了 CSV 文件的异常问题。

我有一个下载 CSV 文件的链接:

<a href="http://mysite.com/public/sample.csv">Sample CSV file</a>

在我的本地机器上,它提供了一个下载对话框 - 这是正确的,这就是我想要的

当我将相同的代码上传到我的网络服务器时,它会在同一浏览器选项卡中将 csv 文件作为网页打开。我不想要的,我想要一个用于下载选项的对话框

谁能告诉我我做错了什么或我需要做什么?

【问题讨论】:

  • 检查本地计算机和 Web 服务器返回的 Content-type。另外,在你的问题中使用更少的标点符号。 !!!!! 并没有真正增加任何价值。
  • @Wesley :是的,我正在使用 Apache 服务器
  • @Noufal : 感谢您的建议,下次会记住的:)

标签: php html csv download


【解决方案1】:

您可以将以下行添加到您的 .htaccess 中。如果打开,所有 CSV 文件都将被强制下载。 AddType application/octet-stream csv 它会将 MIME 标头添加到所有 csv 文件中,因此浏览器会明白它需要下载文件,而不是显示它。

【讨论】:

  • 请。这是text/csv 而不是application/octet-stream。下载选项是您应该留给客户的。服务器应该报告正确的 mime 类型,然后使用Content-disposition 告诉客户端打开一个下载框。
  • Noufal,如果他有链接“下载 CSV”怎么办?
  • @NoufalIbrahim:我认为您对 mime 类型的看法是正确的,但我认为在这两种情况下它都是同一个客户端,即 OP 的浏览器。我不知道为什么有人希望 CSV 在浏览器选项卡中打开,但这里的答案只是试图确保发送正确的标题。我认为有几种可能的哑剧可以奏效。我猜大多数人会得到一个下载对话框,而不需要使用 content-disposition。
  • 确保在包含 CSV 文件的目录(或任何父目录)内的 .htaccess 文件中有该行。
  • @WesleyMurch:如果他设置为application/octet-stream,那么想要关联某个程序打开csv文件的客户端就束手无策了。服务器应返回正确的标头。滥用它们来创建下载对话框是最后的手段,如果可能的话最好避免。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多