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

时间:2011-10-17 08:39:01

标签: php javascript html

在以下代码中,我正在尝试将图像上传到服务器。服务器上有一个文件夹'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);
        }           


?>

2 个答案:

答案 0 :(得分:0)

你不能这样做......你不会在Javascript中更新像这样的照片......(用ajax ..) 它不会像那样......

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

你必须以某种方式提交该帖子......

您有多种解决方案:使用闪存假冒上传ajax或iframe ..

你也可以使用jQuery ..他会为你做所有的事情..

以下是一些演示&amp;下载链接:

如果要移动上传的文件,则必须使用新名称移动“tmp_name”..例如

 if (!move_uploaded_file($_FILES['photo']['tmp_name'], $path.$_FILES['photo']['name'])) 
     echo 'CANNOT MOVE {'.$_FILES['photo']['name'].'}' . PHP_EOL;

当你上传你的文件时,apache会处理它,默认情况下是/ tmp(如果你使用linux ......我不知道在windows的情况下)..

PS:对于你的脚本的性能,你应该使用''而不是“”来表示字符串...当你使用“”PHP正在检查每个“”(字符串)变量==更多操作要做...和''是跳过

答案 1 :(得分:0)

images文件夹需要拥有777权限。默认情况下,权限为655,并且PHP没有权限将文件上传/移动/复制到当前文件夹之外(子目录计为不同的文件夹)

相关问题