2015-06-20 93 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