2012-11-19 289 views
-4

可能重複:
download php is always damaged損壞的文件下載PHP

在我的代碼,我可以下載一個文件,但它主要是導致損壞的文件等。我很堅持,有任何人有任何想法如何我可以改善我的代碼。我的圖片/文檔存儲在文件夾'課程'

他們下載並有一個圖像'png'完美下載,但上傳類似的PNG文件導致損壞的文件。

$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(); 
+0

不要因爲您的第一個問題沒有得到關注而打開重複的問題。修復您的預覽問題! –

+1

結構不好並且很難看到這裏提出的問題,請標記一些答案,您有14個問題沒有任何答案標記爲肯定,並且您的問題結構較差,請查看常見問題或停止污染堆棧溢出 –

回答

-1
  1. 閱讀上的SQL注入和/或移動到PDO或MySQLi的。由於這個原因,標準的MySQL函數已經被棄用了。

  2. 此錯誤可能來自大量可能的問題。你從數據庫中提取文件名和大小 - 他們真的匹配嗎?你確定該文件甚至存在嗎? (你沒有檢查 - 因此,它的輸出可能只是一個錯誤消息,告訴你該文件不存在) 如果使用記事本打開損壞的下載,你會得到什麼?有機會,你會發現在那裏的PHP錯誤。

直到原始問題被編輯後,我纔會更加精確。