【问题标题】:Download .zip file problem (downloading .php file)下载.zip文件问题(下载.php文件)
【发布时间】:2023-04-10 09:00:03
【问题描述】:

我想下载一个 .zip 文件,但是当我去下载它时,它迫使我下载 .php 文件。我使用这个遍布互联网的简单代码,所以我不知道为什么我不能下载 .zip 文件。

header("Cache-Control: no-store, no-cache, must-revalidate");  
header("Cache-Control: post-check=0, pre-check=0", false);  
header("Pragma: no-cache");  
header("Content-type: application/zip");  
header('Content-length: '.filesize($fullpath));  
header("Content-disposition: attachment; filename=".basename($fullpath));  

readfile($fullpath);  

【问题讨论】:

  • 你用哪个浏览器测试它?
  • 您确定您不只是下载一个名为 .php 的 zip 文件吗?
  • 你不需要filesize($fullfile)吗?
  • 我在 readfile() 中使用了完整路径,现在改了
  • 你的代码现在对我来说工作得很好。

标签: php file download zip


【解决方案1】:

如果您使用 .zip 扩展名提供 PHP 文件,则获取 PHP 源代码以供下载是预期行为 - 默认情况下,PHP 解释器不会解析 ZIP 文件。

您必须注册要由 PHP 解析的 ZIP 扩展。不过,这不是最理想的。在这种情况下,您可以链接到扩展名为 .php 的 PHP 文件。 filename 标头将为下载文件的用户提供正确的名称。

如果您使用的是 .php 扩展名并且提供了 PHP 文件的源代码,则您的服务器配置已损坏。

【讨论】:

  • 您将 readfile 与 include 混淆了。 readfile 不会尝试解释文件,例如包含。它只是“读取文件并将其写入输出缓冲区。”
  • @Gerben 在投票前阅读了 cmets。 整个 PHP 源代码会被下载,并且从一开始就不会被解释。可能是因为他使用的是 .zip 扩展名而不是 .php
  • 抱歉,看错了@phpEnthusiast wat 是你的 php 代码的文件名吗?
【解决方案2】:

我认为您正在下载名为 .php 的 zip 文件
尝试用winzipwinrar打开下载的文件

【讨论】:

    猜你喜欢
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多