使用PHP从其他驱动器打开或下载Zip文件

时间:2019-02-14 06:53:45

标签: php

我想使用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文件将下载到下载文件夹中,但不会打开。而且我遇到了错误。

Error Prompt.

在Google搜索后我没有得到任何答案。

2 个答案:

答案 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');

否则,文件传输可能会被浏览器解释为非二进制传输(读取:文本),并且文件可能下载不正确