我使用以下代码进行安全的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
答案 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)
并发布结果。