我只是想知道是否有一種方式,通過PHP下載時設置不同的「內容類型」?如.mp3和.pdf等。而不是隻需指定一種文件類型。我的問題是,我有兩種文件類型要下載,一種是pdf,另一種是mp3,但如果我將「content-type」更改爲audio/mpeg,則不會顯示擴展名。 pdf ...我希望你明白嗎?請幫忙!PHP下載所有文件類型
1
A
回答
0
此功能爲我的偉大工程:
function Download($path, $speed = null)
{
if (is_file($path) === true)
{
set_time_limit(0);
while (ob_get_level() > 0)
{
ob_end_clean();
}
$size = sprintf('%u', filesize($path));
$speed = (is_null($speed) === true) ? $size : intval($speed) * 1024;
header('Expires: 0');
header('Pragma: public');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Type: application/octet-stream');
header('Content-Length: ' . $size);
header('Content-Disposition: attachment; filename="' . basename($path) . '"');
header('Content-Transfer-Encoding: binary');
for ($i = 0; $i <= $size; $i = $i + $speed)
{
echo file_get_contents($path, false, null, $i, $speed);
while (ob_get_level() > 0)
{
ob_end_clean();
}
flush();
sleep(1);
}
exit();
}
return false;
}
您也可以選擇指定在該文件中提供的最高速度。
2
如果您的意思是您的用戶正在下載一些PHP腳本發送的內容,該腳本也正在發送HTTP頭,那麼您是否可以不爲每種類型的文件設置不同的值?
像這樣的東西(僞代碼):
if (file is a PDF) {
header('Content-type: application/pdf');
} else if (file is a MP3) {
header('Content-type: audio/mpeg');
}
和一個「默認」的情況下可能是有用的,如果你也有你有沒有想過,只是還沒有一些其他的文件。
相關問題
- 1. PHP上傳所有文件類型
- 2. 使用ASP.NET從服務器下載所有類型的文件
- 3. 從Dropbox下載所有類型的文件
- 4. 如何使用PHP從網站下載所有特定類型的文件?
- 5. 哪種內容類型應該用於所有類型的文件以在asp.net中下載文件?
- 6. 我該如何下載php中的所有文件附件?
- 7. MIME類型的下載文件
- 8. 下載多種文件類型
- 9. PHP:下載文件
- 10. PHP文件下載
- 11. PHP,文件下載
- 12. php下載文件
- 13. PHP文件下載
- 14. PHP下載文件
- 15. 下載文件PHP
- 16. php下載文件
- 17. PHP下載郵件頭(文件下載)
- 18. 使用PHP下載文件,跟蹤,授權,緩存,MIME類型
- 19. 如何使用php下載這種類型的文件?
- 20. 強制使用PHP下載未知文件類型
- 21. 下載的所有文件在網站
- 22. Curl從Smartling下載所有文件
- 23. opencart獲取所有可下載文件
- 24. 使用wget下載所有pdf文件
- 25. 將所有文件下載爲zip
- 26. 從URL下載所有csv文件
- 27. 從網站下載所有PDF文件
- 28. 下載所有可用(和新)文件
- 29. 我如何使用請求庫下載python中的所有類型的文件
- 30. 使用wget從網站下載特定類型的所有文件
對我來說,octet-stream什麼都不做,它發送一個沒有擴展名的文件,而且我使用firefox developer edition – nosthertus 2014-11-26 16:49:48