我遇到下载脚本的问题,每当我的项目网站上的下载开始时,网站中的所有链接都根本不起作用。 文件完全下载后,链接开始工作。
我正在设置header
并使用readfile
php
方法下载文件。我希望该文件下载应与用户在网站上的操作同时工作。
我正在使用以下代码
header("Pragma: public");
header("Expires: 0");
header("Content-Type: application/$ctype");
header("Content-Description: File Transfer");
header("Content-Disposition: inline; filename=$docName");
header('Content-Length: '. filesize($filename));
header("Accept Ranges: bytes");
header("Content-Transfer-Encoding: binary");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
readfile("$filename");
此处filename
是文件名,ctype
是文件类型。
如何解决这个问题?
如果有人有解决方案,请告诉我。
答案 0 :(得分:0)
我只是猜测您错过了正确的标题,更改内容类型并根据需要转移编码
$ download是实际文件,即/var/www/download_images/1.jpg
$ filesize是文件的大小
$ filename可以是您想要呈现给用户的任何文件名,即homer_simpson.jpg
<?php
if (file_exists($download))
{
header("Cache-Control: must-revalidate");
header("Expires: 0");
header("Pragma: public");
header("Content-Description: File Transfer");
header("Content-Length: ". $filesize .";");
header("Content-Disposition: attachment; filename=" . $filename);
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
ob_clean();
flush();
readfile($download);
}
?>