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