我只是想知道是否有一種方式,通過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. 如何使用PHP從網站下載所有特定類型的文件?
- 3. 哪種內容類型應該用於所有類型的文件以在asp.net中下載文件?
- 4. MIME類型的下載文件
- 5. 下載多種文件類型
- 6. PHP:下載文件
- 7. php下載文件
- 8. PHP文件下載
- 9. PHP下載文件
- 10. PHP,文件下載
- 11. php下載文件
- 12. 下載文件PHP
- 13. 強制使用PHP下載未知文件類型
- 14. 使用PHP下載文件,跟蹤,授權,緩存,MIME類型
- 15. 下載的所有文件在網站
- 16. Curl從Smartling下載所有文件
- 17. 下載所有可用(和新)文件
- 18. 從網站下載所有PDF文件
- 19. 從URL下載所有csv文件
- 20. opencart獲取所有可下載文件
- 21. 我如何使用請求庫下載python中的所有類型的文件
- 22. 開始下載,檢查文件類型,取消下載
- 23. Internet Explorer阻止文件下載; 「未知文件類型」文件
- 24. ruby加載文件中的所有類
- 25. 下載所有Maven插件
- 26. PHP的標題()有關下載文件
- 27. 閱讀所有類型的文件
- 28. 跨所有文件類型運行exiftool
- 29. ASP.NET/IIS:404對所有文件類型
- 30. Php文件下載問題?
對我來說,octet-stream什麼都不做,它發送一個沒有擴展名的文件,而且我使用firefox developer edition – nosthertus 2014-11-26 16:49:48