php - 下载强制文件在下载的文件名中添加下划线 "_"

标签 php file-upload

这是我的文件下载脚本

问题是,当下载文件时,假设文件名是音乐,文件名会更改为

_var_www_myporject_module_Application_musicdir_music

这是我不想要的

这是我的代码片段

public function downloadAction() {
    $filename = $this->params()->fromQuery('filename');
    $file = "/var/www/myproject/module/Application/musicDir/$filename";

    if ($file) {
        header("Cache-Control: public");
        header("Content-Description: File Download");
        header("Content-Disposition: attachment;filename = $file");
        header("Content-Type: application/octet-stream");
        header("Content-Transfer-Encoding: binary");

        readfile($file);
        exit;
    } else {
        exit;
    }
}

最佳答案

改变这个

header("Content-Disposition: attachment;filename = $file");

至:

header("Content-Disposition: attachment;filename = $filename");

这样它将只显示文件名,而不显示目录名。

关于php - 下载强制文件在下载的文件名中添加下划线 "_",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15267694/

相关文章:

javascript - 如何让加载更多数据附加到顶部?

php - 当文件尚不存在时防止类似 LFI 的漏洞

php - 一个查询中的两个位置

c# - 如何跟踪异步文件上传到 azure 存储的进度

reactjs - 后验证失败 : Path '...' is required when using react-hooks-form

php - 虚拟卡Dav 服务器

php - 如何将两个数组的每个元素一起打印出来?

ftp uploader 或只是一个简单的 uploader

file-upload - 角度文件上传 - 如何使放置区可点击?

node.js - 使用 multer-s3 nodejs 将图像上传到亚马逊 s3