badr aldeen
badr aldeen

Reputation: 470

change the name of the downloading file for the user downloading in php or html

Hi Is there is any way which i can give the user different name of the file which i have inside my server

for example i have file inside my server which has md5 name like

33e65007ba9387583d4902e5497fc9ac.mp3

i need when the user click to download this file to change the name of the downloading file to something.mp3

and this changing wanna be just with the user file downloading and it will not effect the name of the file in my server

More detail : 
  1. name of server file is :33e65007ba9387583d4902e5497fc9ac.mp3

  2. name of the user file after downloading something.mp3 with out changing server file

how can i do this thing ? with php ?

Upvotes: 0

Views: 166

Answers (2)

badr aldeen
badr aldeen

Reputation: 470

i solved the problem by changing my download php file to

<?php
$file = $_GET['file'];
header ("Content-type: octet/stream");
header ("Content-disposition: attachment; filename=".$file.";");
header("Content-Length: ".filesize($file));
readfile($file);



exit;
?>

Upvotes: 0

jianfyun
jianfyun

Reputation: 71

You could store file name in $name, and file content in $content. Then, use the following codes to download the file:

header('Content-Description: File Transfer');
header("Content-type: application/force-download");
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $name);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . strlen($content));
ob_clean();
flush();
echo $content;

Upvotes: 2

Related Questions