2014-04-05 70 views
2

我有添加圖像到數據庫的問題,它是插入所有填充圖像得到錯誤,它沒有添加圖像。 這裏是代碼:PHP將圖像上傳到數據庫中

<?php 
include '../dbc.php'; 

$message=''; 
if(isset($_POST["submit"])){ 
    $name = $_POST["name"]; 
    $descr = $_POST["descr"]; 
    $price = $_POST["price"]; 
    $quantity = $_POST["quantity"]; 
    $item_number = $_POST["item_number"]; 
    $cat = $_POST["cat"]; 
    $file = $_FILES['image']['tmp_name']; 


if((!$name) || (!$desc) || (!$price) || (!$quantity) || (!$item_number) || 
    (!$cat) || (!$image)){ 
    $message = "Fill all inputs!"; 
    } 
    $name_query = mysql_query("SELECT name FROM products WHERE name='$name' 
         LIMIT 1") or die("Can't check name!"); 
     $count_name = mysql_num_rows($name_query); 

    if($count_name > 0){ 
     $message = "This product exist!"; 
    }else{ 
     $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); 

     $query= mysql_query("INSERT INTO products (name, description, 
       price,quantity, item_number, category, image) VALUES 
       ('$name', '$descr', '$price', '$quantity', '$item_number', 
       '$cat', '$image')") or die("Can't addi"); 
     $message="Product is added!"; 
    } 
} 

?> 

的Theres錯誤:警告:file_get_contents()函數:文件名不能爲空

+0

有你把'ENCTYPE = 「的multipart/form-data的」'在你的形式? –

+1

所有'mysql_ *'函數都被棄用,不應該被使用。 'addslashes'也不適合逃避需要進入數據庫的數據。第三,您應該考慮使用文件系統來保存文件,並將文件名存儲在數據庫中。 – Arjan

+0

相關:http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay –

回答

1

它不建議將圖像添加到數據庫中,最好將圖片上傳到「磁盤「並將參考(」/images/folder/image.jpg「)保存到數據庫中。

http://davidwalsh.name/basic-file-uploading-php

+0

對於小於5KB的圖像可以很容易地與db操作。獲得更多保護。 –

+3

@ReNiShAR圖像可以輕鬆地存儲在文檔根目錄下並讓腳本文件訪問圖像。 –

+0

k謝謝...我知道..我也用它通過我的作品,,,, –