2016-11-05 51 views
0

我一直試圖在數據庫中存儲圖像,但它不起作用。它可以處理文本,但不能與圖片上傳。用表單上傳文本和圖像並將其存儲在路徑和數據庫中

當我點擊提交它什麼都不做,只是刷新相同的頁面。如果我不使用圖像代碼,我可以將文本存儲在數據庫中(如圖所示)。

我做錯了什麼?請幫助

這是PHP

<?php 

include("connect.php"); 


if(isset($_POST['titel']) && isset($_POST['content']) && isset($_POST['afbeelding'])){ 

    $titel = $_POST['titel']; 
    $content = $_POST['content']; 
    $afbeelding = $_POST['afbeelding']; 

    $tmp = $_FILES['afbeelding']['tmp_name']; 
    $file_location = 'gallery/'.date("YmdHis").'_'.$_FILES['afbeelding']['name']; 

    move_uploaded_file($tmp, $file_location); 

    $sql = "INSERT INTO `portfolio_items` (titel, content, date, afbeelding, active) VALUES (:titel, :content, NOW(), :afbeelding, 1)"; 

    $query = $conn->prepare($sql); 
    $query->bindParam(':titel', $titel, PDO::PARAM_STR); 
    $query->bindParam(':content', $content, PDO::PARAM_STR); 
    $query->bindParam(':afbeelding', $afbeelding, PDO::PARAM_STR); 
    $query->execute(); 

    echo "Opgeslagen!"; 

} 

這是形式

<form method="POST"> 
     <input type="hidden" name="verzonden" value="1" /> 
     <input type="text" name="titel" required placeholder="Titel" maxlength="20"> 
     <br> 
     <textarea rows="13" cols="30" required name="content" placeholder="Content" id="tekst" maxlength="400"></textarea> 
     <br> 
     <input type="file" id="afbeelding" accept="image/jpeg, image/x-png, image/gif" required> 
     <br> <br> 
     <input type="submit" name="submit" value="Opslaan"> 
</form> 

對不起,我凌亂的英語,這不是我的母語

+0

加上'ENCTYPE = 「的multipart/form-data的」'你的表單標籤 – RST

+0

而且,真的 - 在數據庫中存儲的圖像?爲什麼不把圖像存儲在文件系統中,並將其鏈接到存儲在數據庫中的位置(或者只是圖像名稱,實際上,因爲文件系統邏輯也可以在網絡服務器上完成) – junkfoodjunkie

+0

對不起,我的意思是將數據庫的路徑存儲在數據庫中 – Terry

回答

0

在你的代碼中的一些線路的變化看如下:

<?php 

include("connect.php"); 


if(isset($_POST['titel']) && isset($_POST['content']) && isset($_FILES['afbeelding'])){ 

$titel = $_POST['titel']; 
$content = $_POST['content']; 

$tmp = $_FILES['afbeelding']['tmp_name']; 
$file_location = 'gallery/'.date("YmdHis").'_'.$_FILES['afbeelding']['name']; 

    move_uploaded_file($tmp, $file_location); 

$sql = "INSERT INTO `portfolio_items` (titel, content, date, afbeelding, active) VALUES (:titel, :content, NOW(), :afbeelding, 1)"; 


$query = $conn->prepare($sql); 
$query->bindParam(':titel', $titel, PDO::PARAM_STR); 
$query->bindParam(':content', $content, PDO::PARAM_STR); 
$query->bindParam(':afbeelding', $_FILES['afbeelding']['name'], PDO::PARAM_STR); 
$query->execute(); 

echo "Opgeslagen!"; 

} 

表單代碼

<form method="POST" enctype="multipart/form-data"> 
     <input type="hidden" name="verzonden" value="1" /> 
     <input type="text" name="titel" required placeholder="Titel" maxlength="20"> 
     <br> 
     <textarea rows="13" cols="30" required name="content" placeholder="Content" id="tekst" maxlength="400"></textarea> 
     <br> 
     <input type="file" id="afbeelding" name="afbeelding" accept="image/jpeg, image/x-png, image/gif" required> 
     <br> <br> 
     <input type="submit" name="submit" value="Opslaan"> 
    </form> 
+0

如果您只顯示該部分,那麼您更改的內容會更明顯。 – RST

+0

它仍然不起作用,文件不會上傳到「gallery /」,並且不會保存數據庫中的任何內容 – Terry

相關問題