是否可以讓用戶下載具有不同名稱的文件?將不同名稱的文件下載到存儲名稱
例如,有一個名爲「4324ffsd34.jpg」的文件。我希望人們通過download.php下載它,使用不同的名稱(如「filetodownload.jpg」),而無需重命名原始文件。
是否可以讓用戶下載具有不同名稱的文件?將不同名稱的文件下載到存儲名稱
例如,有一個名爲「4324ffsd34.jpg」的文件。我希望人們通過download.php下載它,使用不同的名稱(如「filetodownload.jpg」),而無需重命名原始文件。
當然,使用內容處置header
header('Content-Disposition: attachment; filename="filetodownload.jpg"');
,如果你想提供一個默認的文件名,但不能自動下載,這似乎工作。
header('Content-Disposition: filename="filetodownload.jpg"');
是的,我現在可以看到,thx :),但我想我也必須使用「readfile('original.pdf');」做到這一點 – 2009-10-27 01:25:29
當然,也很好地設置Content-Length和Content-Type。您可以使用filesize()作爲長度,並根據擴展名編寫自己的函數來執行content-type或使用http://uk2.php.net/fileinfo – 2009-10-27 01:28:03
@ RULE101您可以使用'readfile()'或' fread()'做到這一點 – 2015-07-24 03:43:36
當然,你可以,只是嘗試這樣的事:
$original_filename = '4324ffsd34.jpg';
$new_filename = 'my_new_filename_is_detailled.jpg';
// headers to send your file
header("Content-Type: application/jpeg");
header("Content-Length: " . filesize($original_filename));
header('Content-Disposition: attachment; filename="' . $new_filename . '"');
// upload the file to the user and quit
readfile($original_filename);
exit;
希望它能幫助!
沒有錯以上,但我不得不添加:
ob_clean();
flush();
之前的ReadFile
否則我無法打開下載JPG/PNG文件
也有另一種方式,如果你正在使用html5
<a href="link/to/my/file/with/a/name/i/dont/like.jpg" download="MyFile.jpg">Download</a>
乾杯:3
下載屬性不適用於safari,這僅適用於crome,firefox – 2015-12-11 07:20:58
適用於我。沒有人再使用Safari了。至少沒有人認真瀏覽網頁... – 2016-08-04 04:19:08
謝謝@GeorgeButiri – 2016-08-07 13:41:21
<a href="4324ffsd34.jpg" download="filetodownload">Download</a>
請注意,您不必指定文件擴展名,它會由瀏覽器添加。 – 2017-09-30 11:56:22
此「下載」屬性僅適用於具有相同來源的資源的鏈接。 – 2017-09-30 11:56:53
你也可以在Apache中用mod_rewrite來做到這一點,而不需要打你的PHP腳本。可能不適用於您的情況,但如果是這樣,它可以提高性能。 – Artelius 2009-10-27 01:34:52