2014-06-06 23 views
0

我让表单直接在数据库中存储图像,现在我想学习如何将它们存储在一个文件夹中,并将数据存储在路径中。将图像上传到数据库未定义索引

在这一刻我得到这个错误Notice: Undefined index: uploaded_file in,我真的不明白为什么。请一些F1 :) HTML表单:

<form action="ad_cont.php" method="POST" class="add_contact" name="add_contact" enctype="multipart/form-data"> 
<input type="file" name="uploaded_file" multiple required> 
<input type="submit" value="Upload" class="button"> 
</form> 

php脚本:

$img_path = "images/avatar"; 
$img_path = $img_path . basename($_FILES['uploaded_file']['name']); 

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $img_path)) { 
    mysqli_query($conn,"INSERT INTO `uploads` (filename,path) 
    VALUES ('".$_FILES['uploaded_file']['tmp_name']."','".$img_path."')"); 
+6

缺少加密类型。 –

+2

enctype =“multipart/form-data” – Xatenev

回答

3

您必须添加enctype='multipart/form-data'到表单文件上传工作。

<form action="ad_cont.php" method="POST" class="add_contact" enctype="multipart/form-data" name="add_contact"> 
<input type="file" name="uploaded_file" multiple required> 
<input type="submit" value="Upload" class="button"> 
</form> 

这样改变php代码。

$img_path = "images/avatar"; 
$img_path = $img_path . basename($_FILES['uploaded_file']['name']); 

$img_name= $_FILES['uploaded_file']['tmp_name']; 
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $img_path)) { 
    mysqli_query($conn,"INSERT INTO `uploads` (filename,path) 
    VALUES ('".$img_name."','".$img_path."')"); 

尝试更改您的表单的代码,并希望它会工作。

+0

没错,只是纠正了它,但我仍然得到那个未定义的索引。 – SilenceIsGolden

+0

我认为这是因为您在移动后在查询中再次使用$ _FILES ['uploaded_file'] ['tmp_name']。尝试将它存储在一个可用的数据库中,并使用它来插入数据库 – AeJey

+1

@AeJey,你的

0

要上传文件到服务器,您需要提及enctype='multipart/form-data'<form>

<form enctype="multipart/form-data" action="ad_cont.php" method="POST" class="add_contact" name="add_contact" > 
.. 
.. 
</form>