我一直在試圖弄清楚什麼是錯誤的,但每次下載圖像並嘗試打開它時,都會說文件已損壞。下載文件已損壞 - 標題
$ h是從數據庫中拉出的路徑,$ h顯示頁面上的圖像,但我不明白爲什麼它不會下載。有任何想法嗎 ??
我一直在試圖弄清楚什麼是錯誤的,但每次下載圖像並嘗試打開它時,都會說文件已損壞。下載文件已損壞 - 標題
$ h是從數據庫中拉出的路徑,$ h顯示頁面上的圖像,但我不明白爲什麼它不會下載。有任何想法嗎 ??
試試這個:
$localPath = realpath("../$h");
if (!file_exists($localPath)) {
exit("Cannot find file located at '$localPath'");
}
header('Pragma: public'); // required
header('Content-Length: '.filesize($localPath));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.md5($localPath).'.'.$ext.'"');
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0', false);
header('Cache-Control: private', false); // required for certain browsers
readfile($localPath);
exit;
嘗試過,它下載但仍無法打開它。你認爲這可能是文件權限?無論如何,如果這樣做會產生影響,那麼在wamp上運行我的代碼。 – Jason 2012-01-13 16:27:07
這裏最可能的答案是您的文件中''標籤之前或之後有一些前/後空格。這些應該是腳本中的第一個也是最後一個字符。您可以放心地忽略'?>'結束標記。在上面的代碼之前,你也可以調用'echo','print'等 - 記住除了文件數據之外,你不能在輸出緩衝區中寫入任何內容。同時確保你在readfile()調用後立即調用'exit' /'die' **。 – DaveRandom 2012-01-13 16:36:59
Ahhh是多麼愚蠢,之後有一個空白空間現在像夢一樣工作..感謝DaveRandom – Jason 2012-01-13 16:44:24
您是否嘗試保存下載的文件並將其與服務器上的內容進行比較? – 2012-01-13 16:12:53
似乎你的標題數據不知何故不正確,看看md5散列和文件大小。 – 2012-01-13 16:15:07
是的,我可以右鍵點擊圖片,它會下載罰款。嗯,我認爲這是頭,但無法找出最新情況。將刪除散列並查看它的功能。 – Jason 2012-01-13 16:16:55