web-dev-qa-db-fra.com

Téléchargement d'un fichier avec un nom différent du nom stocké

Est-il possible de laisser votre utilisateur télécharger un fichier avec un nom différent?

Par exemple, il existe un fichier appelé "4324ffsd34.jpg". Je veux que les gens le téléchargent via download.php, avec un nom différent (comme "filetodownload.jpg"), sans renommer le fichier d'origine.

35
Utku Dalmaz

Bien sûr, utilisez une disposition de contenu en-tête

header('Content-Disposition: attachment; filename="filetodownload.jpg"');

si vous souhaitez fournir un nom de fichier par défaut, mais pas un téléchargement automatique, cela semble fonctionner.

header('Content-Disposition: filename="filetodownload.jpg"');
61
David Snabel-Caunt

Bien sûr, essayez quelque chose comme ceci:

$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;

J'espère que ça aide!

25
Frankie

Il existe également un autre moyen si vous utilisez html5

<a href="link/to/my/file/with/a/name/i/dont/like.jpg" download="MyFile.jpg">Download</a>

Vive: 3

17
The Bumpaster
<a href="4324ffsd34.jpg" download="filetodownload">Download</a>
1
Gayan Dasanayake

Rien de mal avec ce qui précède mais j'ai dû ajouter:

ob_clean();
flush();

avant readfile

sinon je ne peux pas ouvrir le fichier jpg/png à télécharger

1
user2685840