2015-06-20 95 views
2

我有一個可以輸入字符串(必須放入數據庫的名稱)和2個文件的表單。這些文件必須上傳到一個文件夾,他們的名字放在sql數據庫中。上傳照片並將其名稱添加到MySQL

編輯:數據庫部分工作,但我不能讓它上傳到文件夾。

這是我的代碼。

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Uploading</title> 
    </head> 
    <body> 
    <form method="post" action="fototoevoegen.php" enctype="multipart/form-data"> 
      <p> 
       Foto Name 
      </p> 

      <input type="text" name="fotonaam"/> 
      <p> 
       First Foto. Max size is 500kb. 
      </p> 

      <input type="hidden" name="size" value="5000000"> 
      <input type="file" name="photo"> 


     <p> Second Foto. Max size is 500kb.</p> 
     <input type="hidden" name="size2" value="5000000"> 
      <input type="file" name="photo1"> 
      <br/> 
      <br/> 
      <input TYPE="submit" name="upload" title="Add data to the Database" value="Add Member"/> 
      </form> 

    </body> 
</html> 

而且PHP代碼

  <?php 



//This gets all the other information from the form 
$name=$_POST['fotonaam']; 


$picname1 = $_FILES["photo"]["name"]; 

$picname2= $_FILES["photo1"]["name"]; 

//This is the directory where images will be saved 
$target = "images/".$picname1; 
$target2 = "images/".$picname2; 

if((move_uploaded_file($_FILES['photo']['tmp_name'], $target)) && (move_uploaded_file($_FILES['photo1']['tmp_name'], $target2))) 
{ 
Echo "Succes"; 
    // Connects to your Database 
mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
mysql_select_db("Manu") or die(mysql_error()) ; 

//Writes the information to the database 
mysql_query("INSERT INTO fotos (naamfoto,foto,fotothumb) 
VALUES ('$name', '$picname1', '$picname2')") ; 

//Tells you if its all ok 
} 
else { 

//Gives and error if its not 
echo "Sorry, there was a problem uploading your file."; 
} 





?> 
+0

許多問題 - (1)你有一個流浪')'在'$ PIC1 = $ _ FILES [ '照片1']);'。 (2)當你插入'...'時,'$ pic'和'$ pic1'有什麼期望值...'VALUES('$ name','$ pic','$ pic1')...'?我假設你想用'$ _FILES ['photo'] ['name']'/'$ _FILES ['photo1'] ['name']'代替。 (3)在插入數據庫之前,你應該在**兩個**文件上執行'move_uploaded_file()',以確保它們都先存在。 (4)在不清理數據的情況下,您可以使用'mysql_'開放sql注入。請花時間更新到'mysqli'或'PDO'並學習準備好的語句。 – Sean

+0

@Sean請參閱我的編輯。更新PHP代碼,de db部分工作,但不是文件上傳本身。 – user2340383

回答

2

您正在試圖進入一個文件到數據庫,而不是它的名字。
當保存照片 「」 到數據庫表,它必須是

 

    $picname1 = $_FILES["photo"]["name"]; // $picname1 contains name of photo 1 

    $picname2= $_FILES["photo1"]["name"]; // $picname2 contains name of photo 2 

再加入這個查詢

 

    mysql_query("INSERT INTO tableName (naamfoto,foto,fotothumb) 
    VALUES ('$name', '$picname1', '$picname2')") ; 



和PLS改變

 
if((move_uploaded_file($_FILES['photo']['tmp_name'], $target)) && (move_uploaded_file($_FILES['photo1']['tmp_name'], $target))) 


 
if((move_uploaded_file($_FILES['photo']['tmp_name'], $target.$picname1)) && (move_uploaded_file($_FILES['photo1']['tmp_name'], $target.$picname2))) 
+0

謝謝你,改變這個之後,我仍然得到錯誤move_uploaded_file()沒有工作。有任何想法嗎? – user2340383

+0

請嘗試將$ target =「images /」更改爲$ target =「images /".$ picname1; –

+0

作品!非常感謝您花時間! – user2340383