我使用的是我在這裏找到的下載類http://www.phpclasses.org/package/3220-PHP-Serve-files-for-download-with-resume-support.html讓ppl下載MP3文件。firefox下載沒有擴展名的mp3文件
它適用於所有瀏覽器,除了Firefox(在所有版本中)。
當我使用firefox中的這個類下載一個mp3文件時,它會下載沒有.mp3擴展名的文件。什麼可能會導致這種情況,我該如何解決它?
我使用的是我在這裏找到的下載類http://www.phpclasses.org/package/3220-PHP-Serve-files-for-download-with-resume-support.html讓ppl下載MP3文件。firefox下載沒有擴展名的mp3文件
它適用於所有瀏覽器,除了Firefox(在所有版本中)。
當我使用firefox中的這個類下載一個mp3文件時,它會下載沒有.mp3擴展名的文件。什麼可能會導致這種情況,我該如何解決它?
無需任何代碼,我的猜測是,你不發送文件名作爲HTTP標頭:
header("Content-Disposition: attachment; filename=" . $filename);
你也應該發送正確的MIME類型:
header("Content-type: audio/mpeg3");
編輯:沒關係,我以爲我不能在OP的鏈接下載文件,現在可以看到我錯了。該腳本明確使用這些方法,只是不確定它是否正確執行。
我改變它從音頻/ MPEG到音頻/ MPEG3,但沒有工作。 –
你確定文件名在上面的頭文件中設置正確嗎?這會導致文件名無延伸。 – nickb
哦,這個人解決了這個問題。如果我沒有擴展名的話,Firefox不會讓它生效。現在它是固定的感謝.. –
看來,Firefox的文件保存擴展名,你必須用引號包圍文件名。
header('Content-Disposition: attachment; filename="'.$file.'"');
請再次檢查文件名。如果文件下載有1個字符是空格鍵(「」) 例如:「template import.xls」。火狐將是錯誤的,沒有擴展名下載。 您可以使用替換(「」,「」)來解決與asp.net的問題:
HttpContext.Current.Response.AddHeader(「content-disposition」,「attachment; filename =」+ reportName.Replace 「」,「」));
這些文件是否由服務器實際上作爲mp3服務器? – PeeHaa
是的,他們是作爲MP3文件,但這個下載類有一個重命名功能,我使用 –