0

我有一些 PHP 代码允许用户提交文件。然后我可以下载 ZIP 文件。如果我将 windows 与 Winrar 一起使用,它解压缩得很好,我可以打开我的文件,这一切都很好。我已经在多台计算机上对此进行了测试。

如果我没有 winrar 并且我在 Windows 8 或 Windows 7(或 OSX)中使用默认解压缩器,我会收到一条消息,指出 zip 文件无效。

是否有任何我无法找到的已知问题?有谁知道什么可能导致这种行为?

谢谢,

这是输出 zip 的链接。 https://www.dropbox.com/s/imvzixl3y3l12l1/TestAreaForMax-aa-57.zip

4

1 回答 1

3

如果没有看到您的代码和 ZIP 文件,没有人会肯定地说出来,但我记得有类似的问题,而且我的脚本似乎抛出了一些错误消息,这些错误消息最终出现在生成的 ZIP 存档中。一些解压缩设法从中恢复,而另一些则没有,所以我建议在任何文本编辑器中打开您的 ZIP 文件,看看文件开头是否有类似 PHP 警告消息的内容。

编辑

常规 zip 文件以"PK". 您的文件以" PK"so 开头,除非您真的不需要它,否则请?>从生成您的 zip 文件的 PHP 脚本中删除(我建议从所有脚本中删除它),因为某处有一个空间可以执行我上面描述的操作,而且很可能它潜伏在?>

如果您在 PHP 代码块中,那么空白将什么也不做。但是通过放置?>您告诉 PHP 您的脚本何时结束。在 PHP 代码块之外,空白只是被发送到客户端。因此,如果您保留?>并且空间在它之后,那么它将被发送。如果您的脚本输出是可下载的,则所述空间将“加入”用户保存的字节流。通过删除 ?> 您并没有明确告诉 PHP 您的代码在哪里结束,在这种情况下,它将自动以源文件结尾结束。由于编辑器设置,空格通常是“不可见”的,因此我将其设置为语法突出显示以显示与背景颜色不同的空格)

一般来说,由于上述原因,?>如果您不将 PHP 代码与任何内容(即 HTML)混合使用,则始终不要使用它。将编辑器配置为在保存时自动修剪尾随空格总是有帮助的

于 2012-12-02T19:33:08.373 回答