【问题标题】:PHP: Cannot upload ZIP FilesPHP:无法上传 ZIP 文件
【发布时间】:2012-11-09 18:27:54
【问题描述】:

每当我尝试通过 PHP 上传 ZIP 文件时,文件大小都是 0。

其他一切都有效:7z、rar、png、xml

例如(我输出文件大小和位置进行测试):

File Location: /tmp/phpKNortG/feba81fed1ff5d2c04aa0c42975eb94f.7z
Filesize: 1284


File Location: /tmp/phpEWrmLT/feba81fed1ff5d2c04aa0c42975eb94f.zip
Filesize: 0

我的表单有enctype="multipart/form-data",文件绝对不会太大而不能上传。 (我还将内存限制设置为 128 MB 以确保不是这样)

ini_set('memory_limit', '128M');
set_time_limit(0);

$session_id = "3423840093480344";

mkdir('uploaded_files/' . $session_id);

for($i = 0; $i < count($_FILES['backup_file']['name']); $i++) {
    $file_name = $_FILES['backup_file']['name'][$i];
    $file_type = $_FILES['backup_file']['type'][$i];
    $file_error = $_FILES['backup_file']['error'][$i];
    $file_size = $_FILES['backup_file']['size'][$i];
    $file_tmp = $_FILES['backup_file']['tmp_name'][$i];

    print($file_name . "<br />");
    print($file_type . "<br />");
    print($file_error . "<br />");
    print($file_size . "<br />");
    print($file_tmp . "<br />");

    if($file_error != 0) {
        echo "Error-Code: ".$file_error;
        continue;
    }

    move_uploaded_file($file_tmp, 'uploaded_files/' . $session_id);
}

以下代码输出:

feba81fed1ff5d2c04aa0c42975eb94f.zip
application/zip
0
0
/tmp/phpEWrmLT

它甚至可以识别 MIME 类型,但文件大小始终为零字节。 (甚至在使用 move_uploaded_file 移动它之前)

是否有任何服务器设置可以阻止上传 .zip 文件?

【问题讨论】:

  • 这是您的服务器吗?有没有机会,它正在运行 Suhosin?
  • 不。还有我的服务器规格:带有 Apache/2.2.14 的 Ubuntu 64 位。我的 PHP 版本是:5.3.5-1ubuntu7.1
  • 你是如何解决这个问题的?遇到同样的问题!
  • 我最终这样做了,它对我有用:“在 php.ini 或单独的配置文件 suhosin.ini 中,查找“suhosin.session.cryptua”设置并将其设置为离开。” (by 混沌恶魔)

标签: php file-upload zip


【解决方案1】:

memory_limit 设置与文件上传无关。

您的 post_max_size 和 upload_max_filesize 的值是什么? .zip 文件大小与这些值相比如何?

【讨论】:

  • 我已经编辑了这些。它们都是 4000 MB(我真的很绝望),我已经尝试了几个不同大小的 ZIP。 (从 1 KB 到 4 MB)
  • /tmp 中有多少可用空间?另外,您尝试上传的 .zip 文件的实际大小是多少?
  • 这不是问题所在。我一直在上传其他东西,我试图修复这个错误一个多月。我用于测试的实际 zi​​p 文件大小 1.32 kb
  • 您是否尝试过更改 .zip 文件的扩展名然后上传?如果是,结果如何。
  • 嗯.. 如果我使用不同的扩展名,文件会正常上传。 MIME-Type 似乎没有什么区别。也许是某种防火墙或防病毒软件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-15
  • 2012-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
相关资源
最近更新 更多