我將大量網站上傳到RapidShare進行存儲。然後我有一個腳本,當用戶想要下載文件時,使用他們的API從RapidShare下載並將其提供給用戶。下面是在提供文件腳本中的相關代碼:從RapidShare下載時損壞的圖像
// Stream file to user
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename=' . $result->name);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Content-Length: ' . $result->size);
$url = 'https://' . $host . '/cgi-bin/rsapi.cgi?sub=download';
$url .= '&login=login';
$url .= '&password=mypass';
$url .= '&fileid=' . $result->rs_fileid;
$url .= '&filename=' . $result->name;
$handle = fopen($url, 'rb');
if(!$handle) {
throw new Exception('Failed to open file handle');
}
while(!feof($handle)) {
echo fread($handle, 1024*1024);
ob_flush();
flush();
}
fclose($handle);
能正常工作,所有我除了圖像測試的文件。下載圖像時,它們已損壞。 Windows照片查看器無法打開圖像,也無法像Photoshop一樣編程。奇怪的是,如果我下載一個.exe文件並運行它,一切正常。它不是腐敗的。它只發生在圖像上,據我所知。我也用.pdf來測試它。
爲了讓它更加美觀,如果我查看原始圖像的文件大小(2,882字節),然後通過此腳本下載的圖像的文件大小,它們是相同的。兩者的文件大小是2,882字節。但形象仍然腐敗。
這可能是什麼原因和解決方案?這不像我在下載文件時向文件添加任何二進制數據。 :/
謝謝。
編輯:忘了提及,如果我直接從RapidShare下載文件而不通過腳本,圖像是好的,沒有損壞。所以這一定是錯誤的腳本。
文件的md5sums如何比較?你能否給我們一個原始的例子和被摧毀的? – OmnipotentEntity