2014-04-05 37 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谢谢...我知道..我也用它通过我的作品,,,, –