如何通过ajax重命名下载的文件

时间:2019-02-16 16:28:13

标签: php post download

要通过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"));

1 个答案:

答案 0 :(得分:1)

稍微修改该标题行,以便a)“可见”并执行basename函数b)如果文件名中有空格,则将文件名括在引号中。

header('Content-disposition: attachment; filename="' . basename($downloadfile) . '"');