php脚本没有将图像上传到指定的文件夹


php script is not uploading image to specified folder

尽管我知道这是一个无处不在的问题,但我找不到它不起作用的原因:

我收集了以下代码来实现图像上传到我的网站:

<html>
<body>
<form action="insert.php" 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>

insert.php为:

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
  {
  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("/httpdocs/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "/httpdocs/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "/httpdocs/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
     echo "Invalid file";
  }
?>

好吧,成功信息显示正确。但是,没有文件上载到指定的文件夹。

有什么想法吗?

从根目录运行脚本,创建一个名为uploads的文件夹,然后在不打开/的情况下将/httpdocs/的所有实例更改为uploads/(正如我在下面所做的那样),它应该(理论上)可以工作,就像它对我所做的一样。

需要注意的几件事是,如果您的文件小于20000字节,请确保增加此< 20000。如果您尝试用来上传的文件高于这个数字,那么脚本将抛出Invalid file 错误

确保文件夹是可写的,例如:07550777(在我的情况下是0755)

这已经在我自己的服务器上使用uploads作为我的上传文件夹进行了测试。

此外,正如尼古拉在回答中所说,你可能也需要检查一下。

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000) // <= you may have to increase this value
&& in_array($extension, $allowedExts))
  {
  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
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "uploads/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
     echo "Invalid file";
  }
?>

如果文件夹路径的所有内容都正确,则应该检查文件上传的限制,例如.htaccess:

php_value upload_max_filesize 10M
php_value post_max_size 10M

或pnp.ini中:

upload_max_filesize = 10M
post_max_size = 10M

默认限制为2048KB。

确定根文件夹$_SERVER["DOCUMENT_ROOT"],看看php是否可以访问该文件夹或将文件添加到正确的文件夹中,否则一切看起来都很好。

您指定的地址不正确!

使用类似c:/wamp/www/site/httpdocs/的地址而不是http://site/httpdocs/

如果在Linux上,请检查文件夹的写入权限。

这是100%的测试代码addmage1是文件名输入类型postimages是一个文件夹并成功地将文件移动到postimages文件夹

move_uploaded_file($_FILES["addimage1"]["tmp_name"],"postimages/"$_FILES["addimage1"]["name"]);

if you have try  image upload in php but not uplaod  
 if you are working on cpanel then 
    your image folder must be change permission from 755 to 777
    its work for me
<?php  
$target_path = "upload/";  
$target_path = $target_path.basename( $_FILES['fileToUpload']['name']);   
if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target_path)) {  
    echo "File uploaded successfully!";  
} else{  
    echo "Sorry, file not uploaded, please try again!";  
}  
?> 
if this helpful for you give a thumbs up