要通过ajax下载文件,我有此php代码,它可以正常工作
if($_POST['downloadfile']) {
$downloadfile = $_POST['downloadfile'];
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename= $downloadfile");
header("Content-Transfer-Encoding: binary");
@readfile($downloadfile);
exit;
}
$_POST['downloadfile']
的值是文件的路径;像uploads/image.jpg
下载文件时,浏览器将文件名创建为uploads_image.jpg
我怎么能强迫浏览器只给它起名字image.jpg
?
我在下面用basename
进行了尝试,但是当然,这是行不通的:
header("Content-Disposition: attachment; filename= basename($downloadfile"));
答案 0 :(得分:1)
稍微修改该标题行,以便a)“可见”并执行basename函数b)如果文件名中有空格,则将文件名括在引号中。
header('Content-disposition: attachment; filename="' . basename($downloadfile) . '"');