下载文件名称是点字符

时间:2017-12-01 13:47:48

标签: php php-7

我有这个脚本用于下载文件:

     if (file_exists($full_path)) {

        // get mime type
        $finfo = finfo_open(FILEINFO_MIME_TYPE);  
        $mime = finfo_file($finfo, $full_path);
        finfo_close($finfo);

        // get extension
        $ext = pathinfo( $full_path, PATHINFO_EXTENSION );  

        $file_name = "here is uploaded file's original name";

        header('Content-Description: File Transfer');
        header('Content-Type: '.$mime);
        header('Content-Disposition: attachment; filename="'.$file_name.'.'.$ext.'"');
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($full_path));
        readfile($full_path);

     }

除非文件中有点(.)作为文件名,否则这种情况有效。

因此,如果我有文件..docx,我可以在我的服务器上上传,但是当我尝试使用原始名称下载该文件时,我收到名称为{{的文件1}}哪种类型是docx而不是File

如果尝试使用常规文件名或其他字符,例如逗号,感叹号e.t.c,下载脚本工作正常,我就会收到真正的Microsoft word document文件。

我做错了什么?

0 个答案:

没有答案