使用php将图像上载到服务器

使用php将图像上载到服务器,php,javascript,html,Php,Javascript,Html,在下面的代码中,我尝试将图像上载到服务器。服务器上有一个文件夹“images”。每当我点击“确定”按钮…它会给出一个错误,上传文件时有问题。。。我的代码中的问题在哪里 html--------------------- <form method="post" action="newproduct.php" enctype="multipart/form-data"> Item Image:<input type="file" name= "photo"

在下面的代码中,我尝试将图像上载到服务器。服务器上有一个文件夹“images”。每当我点击“确定”按钮…它会给出一个错误,上传文件时有问题。。。我的代码中的问题在哪里

html---------------------

     <form method="post" action="newproduct.php" enctype="multipart/form-data">

       Item Image:<input type="file" name= "photo" size="40" /> 
       Description:<textarea name="description" cols="40" rows="1"></textarea>
       <input name="submit" type="submit" value = "Submit" /> 
       </form>

php-------------------------------------------------------

$target = "images/";
$target = $target . basename( $_FILES['photo']['name']);

              $pic=($_FILES['photo']['name']);
              $description =$_POST["description"];


//checking for empty values
if (empty($pic) || empty($description))
    {
     echo "Please enter all field values.";  
       }     
else
    {

              //Connecting to database server       

         //Connecting to database


        //INSERT Query
        $SQLstring = "INSERT INTO items VALUES(null,'$pic' ,'$description')";
        $QueryResult = @mysqli_query($DBConnect, $SQLstring)
        or die ("<p> Unable to execute the query. </p>".
                "<p> Error code " . mysqli_errno($DBConnect) . ":" . mysqli_error($DBConnect))."</p>";


               if(move_uploaded_file($_FILES['photo']['name'], $target)) 
               {  
               echo "The file has been added to the directory"; 
                } 
               else 
                {  

                echo "Sorry, there was a problem uploading your file.";
                } 

                mysqli_close($DBConnect);
        }           


?>

你不能那样做。。。你不会在Javascript中更新这样的照片。。。使用ajax。。 它不会像那样工作的

但是。。。你可以假装这个

你必须以某种方式提交那篇文章

您有几种解决方案:使用flash来伪造上传ajax或iframe

您还可以使用jQuery。。他会为你做所有的事

以下是一些演示和下载链接:

如果要移动上载的文件,必须使用新名称移动tmp_名称。。像

 if (!move_uploaded_file($_FILES['photo']['tmp_name'], $path.$_FILES['photo']['name'])) 
     echo 'CANNOT MOVE {'.$_FILES['photo']['name'].'}' . PHP_EOL;
当您上传文件时,apache会处理它,如果您使用linux,默认情况下它位于/tmp中。。。我不知道在windows的情况下


注意:为了提高脚本的性能,应该使用“”而不是字符串。。当您使用PHP时,会检查每个字符串中的变量==要执行的更多操作。。和“”被跳过

图像文件夹需要对其拥有777权限。默认情况下,权限为655,并且PHP没有权限在当前文件夹之外上载/移动/复制文件,该文件位于子目录中,视为不同的文件夹

文件是否已上载?@dev yes folder'images'已存在我在上面的代码中没有ajax,现在它不是给空值错误,而是显示上传文件时有错误?@Ayman在这种情况下,您必须移动tmp文件。。不是“名字”。。我想是“tmp_名称”。。。我将编辑我的帖子…如何设置此权限?在ftp客户端中,右键单击文件夹并选择“文件/管理权限”