我讓用戶上傳一個文件,我在一個字段中存儲原始文件名的名稱,另一個文件的重命名名稱以避免重複和其他風險。因此,當我讓他們下載它時,我希望他們能夠以原始名稱下載它,但是當我們的服務器上的我想要使用重命名的版本時。你怎麼能有兩個文件名並使用它來提供它?
樣品:
$原有=用戶給出的文件
$改稱名稱=我們給文件
header('Content-type: application/octet-stream'); // concatenation
header("Content-disposition: attachment; filename=$original"); // double quotes
$filename="../../../../docs/doc/$renamed";
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($filename));
ob_clean();
flush();
readfile($renamed); // no quotes needed
我想這樣做,但該名字,因爲原來的名字是存儲在數據庫中,實際的文件名是重命名的一個我怎麼能實現這個?
將兩個名稱都存儲在數據庫中。在標題中發送原始名稱,從磁盤讀取重命名的名稱。 –