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.

Foi útil?

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
scroll top