php – 强制保存所有浏览器的文件 – 不在浏览器窗口中打开

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 强制保存所有浏览器的文件 – 不在浏览器窗口中打开脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一个适用于所有浏览器的简单解决方案.

对于特定的文件类型,或通过类的目标链接:如何让它们在所有主流浏览器中强制下载.

我以为我找到了apachce服务器的完美解决方案 – 将其添加到.htaccess中.

http://css-tricks.com/snippets/htaccess/force-files-to-download-not-open-in-browser/

AddTyPE application/octet-stream .csv
AddType application/octet-stream .xls
AddType application/octet-stream .doc
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
AddType application/octet-stream .mov
AddType application/octet-stream .pDF

似乎在Firefox和Safari中工作,但不是chrome或IE(尚未测试任何其他内容)

任何人都可以帮我解决如何建立链接强制下载文件,而不是在浏览器中打开所有浏览器.

我似乎找不到完整的浏览器校对解决方案.这不可能吗?

教程或片段的任何链接都很棒.

我的网站,如果基于PHP,可以使它与PHP一起使用,如果可行的话.

谢谢

解决方法

将Content-DisposITion标头设置为“attachment”,就像这样(在PHP中):

header('Content-Disposition: attachment');

您甚至可以为下载提供文件名(如果它与URL中给出的文件名不同):

header('Content-Disposition: attachment; filename=file.ext');

如果要直接在apache服务器中执行此操作,请尝试以下操作:

<FilESMatch "\.(pdf|csv|xls)">
  Header set Content-Disposition attachment
</FilesMatch>

(您可以在FilesMatch模式中添加更多扩展名)

如果可以的话,尽量避免使用application / octet-stream标头,也就是说,如果Content-Disposition在没有它的情况下工作.这是因为有些系统实际上会关注Content-type并将其与文件一起保存.如果用户的系统可以找出文件的正确MIME类型,通常会更好.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 强制保存所有浏览器的文件 – 不在浏览器窗口中打开全部内容,希望文章能够帮你解决php – 强制保存所有浏览器的文件 – 不在浏览器窗口中打开所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。