如何让用户以不同的文件名下载文件?
例如,有一个名为“4324ffsd34.jpg”的文件。我想通过download.php让人们下载它,但使用另一个名称(比如“filetodownload.jpg”),并且不需要重命名原始文件。
如何让用户以不同的文件名下载文件?
例如,有一个名为“4324ffsd34.jpg”的文件。我想通过download.php让人们下载它,但使用另一个名称(比如“filetodownload.jpg”),并且不需要重命名原始文件。
可以使用 Content-disposition 头部信息
header('Content-Disposition: attachment; filename="filetodownload.jpg"');
如果你希望提供一个默认文件名,但不希望自动下载,似乎这个方法可行。
header('Content-Disposition: filename="filetodownload.jpg"');
readfile()
或者fread()
来完成这个任务。 - RJ Anoop当然可以,只需尝试类似以下的内容:
$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
<a href="4324ffsd34.jpg" download="filetodownload">Download</a>
上述内容没有问题,但我需要补充:
ob_clean();
flush();
在调用readfile之前
否则我将无法打开下载的jpg/png文件