pdf下载文件名称问题

时间:2014-01-03 15:19:23

标签: php pdf file-io

我使用以下代码进行安全的pdf下载。一切都很好。问题是下载pdf文件名concats文件夹名也。我想要取消文件夹名称。还为安全的pdf下载提供更好的解决方案。请检查以下内容。

    $pdf_file = base64_decode($_GET['file_name']);
    $dir="Secured_files";
    $file = $dir."/".$pdf_file .".pdf";
    header("Content-Disposition: attachment; filename=" . urlencode($file));   
    header("Content-Type: application/octet-stream");

    header("Content-Type: application/download");
    header("Content-Description: File Transfer");            
    header("Content-Length: " . filesize($file));
    flush(); // this doesn't really matter.
    $fp = fopen($file, "r");
    while (!feof($fp))
    {
        echo fread($fp, 65536);
        flush(); // this is essential for large downloads
    } 
    fclose($fp);

文件名是:此处Secured_files是文件夹名称,xxxxx是文件名。

  

Secured_filesxxxxx.pdf

2 个答案:

答案 0 :(得分:1)

$file_label = $pdf_file .".pdf";
$file = $dir."/".$file_label;
header("Content-Disposition: attachment; filename=" . urlencode($file_label));

答案 1 :(得分:0)

替换

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

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

$file是完整的文件路径而不是名称。你只想要这个名字。

如果仍然无效,请执行var_dump($file)并发布结果。