2012-04-28 59 views
0

上传一个图像到一个目录,它似乎总是尝试上传“”这是什么。而不是实际的图像。我在下面做什么。我知道值是“”,因为它插入到数据库中。文件上传空字符串

<li class="formProductImage"> 
<span>Image:</span> 
<input type="file" name="productImage" /> 
</li> 

和PHP:

if ($_FILES["productImage"]["error"] > 0) 
    { 
     echo "Return Code: " . $_FILES["productImage"]["error"] . "<br />"; 
    } 
else 
    { 
    echo "Upload: " . $_FILES["productImage"]["name"] . "<br />"; 
    echo "Type: " . $_FILES["productImage"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["productImage"]["size"]/1024) . " Kb<br />"; 
    echo "Temp file: " . $_FILES["productImage"]["tmp_name"] . "<br />"; 
    $filename = mysql_real_escape_string($_FILES['productImage']['name']); 

     $query = "UPDATE products SET image = '$filename' WHERE name = '$name'"; 
     $result = mysql_query($query); 

     if (mysql_affected_rows() == 1) { 
      // Show thank you message 
      echo '<span style="color:green;">Your image was added to database correctly.</span>'; 

      if (file_exists("uploaded/" . $_FILES["productImage"]["name"])) 
      { 
       echo $_FILES["productImage"]["name"] . " already exists. "; 
      } 
      else 
      { 
       move_uploaded_file($_FILES["productImage"]["tmp_name"], 
       "uploaded/" . $_FILES["productImage"]["name"]); 
       echo "Stored in: " . "uploaded/" . $_FILES["productImage"]["name"]; 
      } 

     } else { 
      echo '<font color="red">Image note inserted into database.</font>'; 
      echo mysql_error(); 
     } 

    } 
        } 

         } 

回答

1

请确保您有在<form>标签enctype="multipart/form-data"

+0

呜呼它适合你的传说,我从这本书中错过的这么简单的东西,我正在阅读哈哈叹息!去眼镜商的时间我认为哈哈。 – Anicho 2012-04-28 17:56:50

+1

呵呵,我自己曾经犯过同样的错误,现在我总是在创建文件上传时考虑它:) – fhugas 2012-04-28 18:06:44

1

改变这一行:

$filename = mysql_real_escape_string($_FILES['file']['name']); 

到:

$filename = mysql_real_escape_string($_FILES['productImage']['name']); 
+0

不错的地方,但这并没有解决问题。不解决数据库中的“”字符串。 – Anicho 2012-04-28 17:49:39