我有一个PHP脚本,可以创建一个Zip存档,然后将其传递给浏览器进行下载。
这可以通过HTTP响应标头轻松完成
header('Pragma: no-cache');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0, public')
header('Content-Type: application/zip')
header('Content-Length: ' . filesize($zipPath))
header('Content-Disposition: attachment; filename=filename.zip')
header('Content-Transfer-Encoding: binary')
echo file_get_contents($zipPath);
正确下载文件。我也可以打开它。但是,当我检查下载的文件mime-type
时,它会告诉我:application/octet-stream
而不是application/zip
。
对于文件mime类型检测,我使用以下代码段:
$pathToDownloadedFile = 'somewhere-on-disk';
$file = finfo_open(FILEINFO_MIME_TYPE);
var_dump(
file_exists($pathToDownloadedFile),
finfo_file($file, $pathToDownloadedFile)
);
转出的:
我搜索了问题,但没有运气。真
应用/八位字节流