php - 文件上传不工作

标签 php file-upload

我在 media temple 服务器上安装了 wordpress,发现无法上传文件。在尝试了几种解决方案后,决定使用一个简单的脚本 ( http://pastie.org/2349720 ) 来复制该问题。

<?php
if($_FILES)
        print_r($_FILES);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 200000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("uploads/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else if (!file_exists($_FILES["file"]["tmp_name"]))
      {
      echo 'temp file doesn\'t exists';
      }
    else
      {
      $uploaded=move_uploaded_file($_FILES["file"]["tmp_name"],
      $_FILES["file"]["name"]);
      if($uploaded)
        echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
      else
        echo "fallo la carga del archivo";
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

<html>
<body>

<form action="" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

看起来 move_upload_file() 在没有警告或错误的情况下返回 false,查看 php 文档并找到了这个

If filename is not a valid upload file, then no action will occur, and move_uploaded_file() will return FALSE.

我已经检查过,文件上传没有报告任何错误,并且临时文件在尝试移动之前就已经存在。已经在文件夹中设置了 777 权限,但仍然没有成功,是否知道可能导致此行为的原因以及如何解决?

谢谢。

最佳答案

这给了你什么:

$_FILES[...]['error']

如果它没有给你零,你可以在这里检查哪里出了问题:http://php.net/manual/en/features.file-upload.errors.php .

如果是,请确保您的文件夹所在的文件夹可由 PHP 访问。您可以尝试运行此命令:

sudo -s -u [php_user]
cd [destination_directory]

检查是否可以到达目录 =)!

关于php - 文件上传不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7009578/

相关文章:

php - Laravel 5.3 资源路由名称

php - Wordpress function.php 中的函数

php - 在 Magento 中针对客户保存图像文件的最佳选择是什么?

jquery - 超出的最大上传文件大小将被忽略

php - 使用 CodeIgniter 登录和 session

javascript - 如何从无限循环的 Javascript 函数向 MySQL 传递值?

php - 为什么这个 php if 语句不起作用?

c# - 使用 RestClient 上传文件作为 c# 中的多部分/表单数据

ruby - 在 Carrierwave 中手动上传和保存文件

java - 使用java刷新文件系统