我想使用PHP后端从其他驱动器上打开或下载Chrome / Mozilla Browser压缩文件。 Zip文件的位置为P:\niks\all Zip Files\Reports\Report 01 feb 2019.zip
。
$filePath = 'P:\niks\all Zip Files\Reports\Report 01 feb 2019.zip';
header('Content-Description: File Transfer');
header('Content-Type: application/force-download');
header("Content-Disposition: attachment; filename=\"" . basename($filePath) . "\";");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filePath));
ob_clean();
flush();
readfile($filePath);
运行此脚本后,Zip文件将下载到下载文件夹中,但不会打开。而且我遇到了错误。
在Google搜索后我没有得到任何答案。
答案 0 :(得分:0)
如果您将HTML与PHP混合使用,或者PHP脚本在关闭标签update t1
JOIN (SELECT unique_number, SUM(amount) AS DIST_
FROM t2
WHERE reseller_id = '31'
GROUP BY unique_number) AS t2
ON t1.unique_number = t2.unique_number
SET t1.DIST_ = t2.DIST_
后可能包含空格,则可能会发生这种情况,这意味着某些内容正沿着zip内容发送到浏览器。因此,请在文本编辑器中打开ZIP文件,然后查看文件开头的内容,然后与正确的ZIP存档进行比较,然后查看可以在何处转义此字符。并尝试:
1-移除结束标签?>
,仅打开结束标签?>
。
2-在PHP脚本顶部添加此功能 ob_end_clean 。
<?php
答案 1 :(得分:0)
您似乎使用了错误的内容类型:
header('Content-Type: application/force-download');
应该是
header('Content-Type: application/zip');
或
header('Content-Type: application/octet-stream');
否则,文件传输可能会被浏览器解释为非二进制传输(读取:文本),并且文件可能下载不正确