2014-06-06 57 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>