-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

これは、データをエコーし​​た後に PHP が何らかの情報を送信するために発生します。これに対する解決策は、データをエコーし​​た直後に処理を停止することexit();ですecho $data

于 2012-11-19T20:16:52.577 に答える