Download de um arquivo com um nome diferente para o nome gravado
-
06-07-2019 - |
Pergunta
É possível deixar o download do usuário um arquivo com um nome diferente?
Por exemplo, há um arquivo chamado "4324ffsd34.jpg". Quero que as pessoas baixá-lo via download.php, com um nome diferente (como "filetodownload.jpg"), sem mudar o nome do arquivo original.
Solução
Claro, usar um Content-disposition cabeçalho
header('Content-Disposition: attachment; filename="filetodownload.jpg"');
Se você deseja fornecer um nome de arquivo padrão, mas de descarga automática, isso parece funcionar.
header('Content-Disposition: filename="filetodownload.jpg"');
Outras dicas
Claro que você pode, tente algo como isto:
$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;
Espero que ajude!
Há também uma outra forma, se você estiver usando HTML5
<a href="link/to/my/file/with/a/name/i/dont/like.jpg" download="MyFile.jpg">Download</a>
Cheers: 3
<a href="4324ffsd34.jpg" download="filetodownload">Download</a>
errado Nada com o acima, mas eu tive que adicionar:
ob_clean();
flush();
Antes de readfile
caso contrário não consigo abrir o download jpg / png
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow