php脚本未将图像上载到指定文件夹

php脚本未将图像上载到指定文件夹,php,html,image,forms,image-uploading,Php,Html,Image,Forms,Image Uploading,虽然我知道这是一个无处不在的问题,但我找不到它不起作用的原因: 我收集了下面的代码来实现图像上传到我的站点: <html> <body> <form action="insert.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"

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

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

<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";
  }
?>

那么,成功消息将正确显示。但是,没有文件上载到指定的文件夹


有什么想法吗?

如果所有文件夹路径都正确,您应该检查文件上载的限制,例如在.htaccess中:

php_value upload_max_filesize 10M
php_value post_max_size 10M
或在pnp.ini中:

upload_max_filesize = 10M
post_max_size = 10M

默认限制为2048KB。

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

需要注意的几点是,如果文件小于20000字节,请确保增加此
<20000
。如果您试图用于上载的文件高于此数字,则脚本将抛出一个错误
无效文件

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

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

另外,您可能还想检查一下

<?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";
  }
?>


确定您的根文件夹
$\u服务器[“DOCUMENT\u root”]
以查看php是否可以访问该文件夹或是否正在将文件添加到正确的文件夹,否则一切看起来都很好。

您指定的地址不正确

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


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

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

移动上传的文件($文件[“addimage1”][“tmp文件名”], “postimages/”$_文件[“addimage1”][“name”])

如果您已经尝试了用php上传图像,但没有使用uplaod
如果您正在使用cpanel,那么
您的图像文件夹必须具有从755更改为777的权限
这是我的工作
如果这对你有帮助,请竖起大拇指

检查move\u uploaded\u file()是否返回TRUE。您可能没有写入权限或其他权限。
move\u uploaded\u file
根据成功与否返回true或false。您应该在使用时检查它。并确保启用了错误报告。如果失败,则应显示原因。是否尝试写入文件系统根目录下的
httpdocs
文件夹?这很有可能是不正确的。在执行其他操作之前,您应该检查
$\u文件[“文件”][“错误”]
,了解其工作原理!可能我的文件传输文件夹有误,无论如何,非常感谢!非常欢迎您@PanosVakalopoulos相对路径工作得更好。;-)能否请您对您提供的解决方案多加一点说明?
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