40
A
回答
48
输出文件之前发送以下标题:
header("Content-Disposition: attachment; filename=\"" . basename($File) . "\"");
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($File));
header("Connection: close");
@grom:有趣的关于 '应用/八位字节流' MIME类型。我没有意识到这一点,总是只使用'应用程序/强制下载':)
36
以下是发回pdf的示例。
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Content-Transfer-Encoding: binary');
readfile($filename);
@Swish我没有找到应用程序/力下载的内容类型做什么不同(在IE和Firefox测试)。是否有不返回实际MIME类型的原因?
在发布PHP手册 Hayley Watson另外:
如果要强制,而不是渲染到可以下载并保存文件时,请记住,有没有这样的MIME类型为“应用程序/力 - 下载”。在这种情况下使用的正确类型是“application/octet-stream”,而使用其他任何东西都仅仅依赖于客户端应该忽略无法识别的MIME类型并使用“application/octet-stream”来替代(参考:Sections RFC 2046的4.1.4和4.5.1)。
也根据IANA没有注册的应用程序/强制下载类型。
7
一个干净的例子。
<?php
header('Content-Type: application/download');
header('Content-Disposition: attachment; filename="example.txt"');
header("Content-Length: " . filesize("example.txt"));
$fp = fopen("example.txt", "r");
fpassthru($fp);
fclose($fp);
?>
0
我的代码适用于TXT,DOC,DOCX,PDF,PPT,PPTX,JPG,PNG,压缩扩展和我认为它能够更好地明确地使用实际的MIME类型。
$file_name = "a.txt";
// extracting the extension:
$ext = substr($file_name, strpos($file_name,'.')+1);
header('Content-disposition: attachment; filename='.$file_name);
if(strtolower($ext) == "txt")
{
header('Content-type: text/plain'); // works for txt only
}
else
{
header('Content-type: application/'.$ext); // works for all extensions except txt
}
readfile($decrypted_file_path);
相关问题
- 1. 自动下载启动
- 2. 如何在下载apk后自动启动Android安装程序?
- 3. 无法启动自动下载
- 4. PHP自动下载文件
- 5. php ie9自动下载
- 6. Selenium:我如何获得自动启动的下载链接?
- 7. 如何在java中下载后自动启动一个exe文件
- 8. 如何在Linux下自动加载给定的任何新启动的进程?
- 9. 如何启动Android下载管理器
- 10. 如何在浏览器加载时自动启动iMacros Javascript
- 11. 如何在启动Delphi时自动加载项目
- 12. 在启动时(在JBoss上)启动/自动加载EJB /加载EJB
- 13. 生成可下载的文件链接并自动启动下载
- 14. 无需下载...启动webstart ...?
- 15. 如何在启动后自动启动pygtk程序
- 16. 如何在启动后禁用自动启动的openfire?
- 17. 如何在应用程序启动时自动启动Delayed_Job?
- 18. Ubuntu-Apache:如何在启动时自动启动apache?
- 19. 如何在启动emacs/spacemacs时自动启动shell缓冲区
- 20. 如何在Windows启动时自动启动应用程序?
- 21. 如何在Windows 7启动时自动启动SQL Server 2008?
- 22. 如何在系统启动时自动启动MAMP sql server
- 23. 如何在启动后自动启动Bada 2.0应用程序?
- 24. 如何在自动启动时隐藏MFC启动画面?
- 25. 如何让rabbitmq-server在启动时自动启动?(centos 7)
- 26. 如何在Linux系统启动时自动启动erl.beam文件?
- 27. 如何在Windows启动时自动启动xampp v3.2.1?
- 28. 如何在PHP中启动PGSQL连接?
- 29. 你如何自动下载JavaScript文件?
- 30. 如何使用Gradle自动下载javadocs?
它可以在PC上运行,但是......当我访问Android设备上的下载页面时,“无法下载。不支持的内容”。为什么? – Emerald214 2012-07-12 09:42:17
@ Emerald214没有PDF阅读器。或者没有关于PDF内容类型的关联 – grom 2012-07-13 06:38:40
特别是如果目标文件类型是.zip,并且您在页面上执行的所有操作都是通过PHP启动文件下载,则可能需要添加```ob_clean();` ``和```ob_flush();```在上面的答案中提供的代码之前;当试图在Windows中本地打开.zip时,我遇到了一个问题,即以这种方式获取的操作系统报告的.zip-archives无效,即使7zip和其他专用的压缩归档格式处理工具也可以应对它们。 – SeldomNeedy 2015-07-09 22:41:00