【问题标题】:PHP Uploads all failingPHP上传全部失败
【发布时间】:2012-03-29 12:12:09
【问题描述】:

由于未知原因,几天后我的 Plesk 服务器将不再与 PHP 文件上传协作。

测试是使用 1.8 MB 的 mp3 文件和更小的电影文件完成的。

我试图通过这个问题调试我的方式..

upload_max_filesize = 100M

post_max_size = 128M

open_basedir 关闭或设置为两个目录,其中之一是 /tmp/

upload_tmp_dir = /tmp memory_limit = 4096M(由于其他原因,设置得特别高)

/tmp 是这样的:

drwxrwxrwx   4 root root  200 Mar 29 14:09 tmp

Linux 版本 2.6.32-5-amd64 (Debian 2.6.32-35) (dannf@debian.org) (gcc 版本 4.3.5 (Debian 4.3.5-4) ) #1 SMP Tue Jun 14 09: 2011 年 42:28 世界标准时间

我的表单使用 multipart/form-data,所以这已经解决了,尽管我也使用两个不同的 ajax 上传脚本进行了测试——这两个脚本通常都可以正常工作。

我没有收到任何错误消息。我所知道的是上传后tmp文件不存在。就是这样。

有人知道这里发生了什么吗?

谢谢!

【问题讨论】:

  • 服务器上还有多少磁盘空间? /tmp 可以随时清除。
  • 29% 的主磁盘使用率。但是,我发现:文件系统“溢出”安装在 /tmp 上(这是什么意思?)

标签: php file-upload upload


【解决方案1】:

正如您的 cmets 中所述,您在 /tmp 的顶部安装了一个 overflow。这种行为实际上表明 /tmp 已满,因为如果 /tmp 已满,脚本/etc/init.d/mountoverflowtmp 将自动创建一个大小为 1mb 的 RAM 磁盘。所以我建议umount overflow 然后清理你的/tmp

【讨论】:

    【解决方案2】:

    我在你的代码中某处图像你访问 $_FILE 数组来获取上传的文件。

    试试这个:

     print_r($_FILES);
    

    如果问题与 php 相关,您将看到设置了“错误代码”。

    这是一个错误代码解释: http://php.net/manual/en/features.file-upload.errors.php

    这可以帮助您识别问题

    【讨论】:

      【解决方案3】:

      “我只知道上传后tmp文件不存在。并且 就是这样。”

      您的意思是您在运行脚本后手动查找它吗?如果是这种情况,那就是预期的行为。该文件临时存储在 $_FILES['postVariableName']['tmp_name'] 中,除非您先对该文件执行任何操作,否则将在脚本末尾删除。

      $localFilePath='/some/file/path.txt';
      if(move_uploaded_file($_FILES['postVariableName']['tmp_name'], $localFilePath)){
         //Successfully moved the file
      }
      else{
         //Unable to move file
         echo'Could not move file';
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-05
        • 2014-10-25
        • 2023-03-09
        • 2014-07-22
        • 2012-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多