我在一个奇怪的问题上被困了一天(至少对我而言)。
我在服务器的文件系统上有很多(通常是PDF)文件,我希望通过PHP文件将它们提供给用户,以使业务逻辑更容易(记录下载,在用户上创建文件的名称' filesystems nicer,...)
PHP代码:
// $ext = extension of the file;
// $fullPath = full path of the file being downloaded on server's filesystem
switch($ext) {
case "pdf": $ctype="application/pdf"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
...
default: $ctype="application/octet-stream";
}
$fsize = filesize($fullPath);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: " . $ctype);
header("Content-Disposition: attachment; filename=\"" . $targetName . "\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fsize);
ob_clean();
flush();
readfile($fullPath);
重要提示:我使用CloudFlare(免费),因此对于HTTPS,我使用他们的SSL证书(这对其他一切都很好)
它的表现如何?
到目前为止我尝试了什么:
自己尝试(约1.5MB文件)