Загрузка файла с другим именем в сохраненное имя
Возможно ли, чтобы ваш пользователь загрузил файл с другим именем?
Например, есть файл под названием "4324ffsd34.jpg". Я хочу, чтобы люди загружали его через download.php с другим именем (например, filetodownload.jpg) без переименования исходного файла.
Ответы
Ответ 1
Конечно, используйте Content-disposition header
header('Content-Disposition: attachment; filename="filetodownload.jpg"');
если вы хотите указать имя файла по умолчанию, но не автоматическую загрузку, это работает.
header('Content-Disposition: filename="filetodownload.jpg"');
Ответ 2
Конечно, вы можете просто попробовать что-то вроде этого:
$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;
Надеюсь, что это поможет!
Ответ 3
Существует и другой способ, если вы используете html5
<a href="link/to/my/file/with/a/name/i/dont/like.jpg" download="MyFile.jpg">Download</a>
Приветствия: 3
Ответ 4
<a href="4324ffsd34.jpg" download="filetodownload">Download</a>
Ответ 5
Ничего плохого в этом не было, но мне пришлось добавить:
ob_clean();
flush();
перед чтением файла
иначе я не могу открыть файл загрузки jpg/png