-1

我有一个用 PHP 编写的下载脚本。我的视图文件脚本链接到 ID,然后选择与 ID 匹配的所有数据。

然后使用该数据下载照片。我的照片在文件夹中是否重要?它被移动到一个文件夹,然后该目录被上传到 MYSQL 数据库。

目前的代码现在允许一些文件完美下载,然后大部分文件被损坏。有什么理由吗?

    Mysql table info...
    $cool = $_GET['id'];

  $sql = "SELECT id, type, name, size FROM upload WHERE id='$cool'";

   $result = mysql_query($sql, $db);
   $data = mysql_result($result, 0, "id");
   $name = mysql_result($result, 0, "name");
   $size = mysql_result($result, 0, "size");
   $type = mysql_result($result, 0, "type");

   header("Content-type: $type");
   header("Content-length: $size");
   header("Content-Disposition: attachment; filename=$name");
   header("Content-Description: PHP Generated Data");
   header('Content-Transfer-Encoding: binary');
   header('Expires: 0');
   header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
   header('Pragma: public');
   ob_clean();
   flush();
   readfile($name);
   exit();
4

1 回答 1

1

exit();发生这种情况是因为 PHP 在您回显数据后发送了一些信息,对此的解决方案是在您回显数据后立即停止处理,为此添加echo $data.

于 2012-11-19T20:16:52.577 回答