2015-05-18 3 views
-1

Может кто-нибудь мне помочь? Я пытаюсь загрузить изображение в базу данных как LONGBLOB, но когда я проверяю базу данных, загруженное изображение имеет только 12 B вместо 148KiB, поэтому оно не может быть отображено !!Загрузка/извлечение изображения в базу данных mysql

Я хотел загрузить изображение в файл и сохранить путь к изображению в базе данных, но я не знаю, как это сделать, потому что я хочу отображать изображение в таблице, соответствующую информации/деталям компонента.

<?php 

include "conn.php"; 

if(isset($_POST['submit'])) { 

    $comp_id=$_POST['comp_id']; 
    $compname=$_POST['compname']; 
    $image=$_POST['image']; 
    $description=$_POST['description']; 
    $category=$_POST['category']; 
    $subcat=$_POST['subcat']; 
    $tech_id=$_POST['tech_id']; 


    $query = mysql_query("INSERT INTO `resourcesys`.`ecomp_t` 
    (`comp_id`,`compname`,`image`,`description`,`category`,`subcat`,`tech_id`) 
    VALUES ('$comp_id','$compname','$image','$description','$category','$subcat','$tech_id')") 
    or die(mysql_error()); 

    echo "<script>alert('Your component has been added successfully !!');</script>"; 

} 
+0

Добро пожаловать в StackOverflow. У вас есть код, который вы можете поделиться с нами? –

+0

Не ответ на вопрос, но я бы рекомендовал не хранить изображения непосредственно в базе данных, почему бы не хранить файлы в файловой системе и просто ссылаться на их местоположения в db. –

+2

@JonStirling Любая конкретная причина? – Strawberry

ответ

1

Без какого-либо кода, отправленного, трудно отладить ваш конкретный прецедент.

Как альтернатива (и, на мой взгляд, лучше), ответ на ваш первоначальный вопрос, я полагаю, что в зависимости от того, что вы пытаетесь сделать с вашим приложением, хранение изображений может быть не лучшей идеей. Там намного меньше накладных расходов, которые вызывается при работе с файлами с использованием локальной файловой системы.

Есть некоторые прецеденты для того, что вы пытаетесь сделать (например, если вам нужна целостность транзакций или если вы последовательно используете файлы изображений < 250kB). Есть серьезные плюсы и минусы в любом случае.

Вот некоторые хорошие рецензии на дебаты:

Storing Images in DB - Yea or Nay?

Is it a bad practice to store large files (10 MB) in a database?

Вместо этого я хотел бы использовать более традиционный метод, например, используя форму для получения пользовательского ввода, проверки для целей безопасности и отправки файла на сервер.

Link to the PHP documentation

Link to a step-by-step walkthrough

+0

Я удалил свой «коэффициент 100», поскольку я не мог его обосновать. Я считал, что где-то я его где-то читал, но, должно быть, я ошибся. –

+0

Тем не менее, ссылка, которую вы предоставили, по крайней мере в целом поддержала ваше требование – Strawberry

+0

Cheers. Вот довольно интересная исследовательская статья, в которой рассматривается хранение файлов в базе данных по сравнению с файловым сервером с использованием сервера Microsoft SQL: http://research.microsoft.com/apps/pubs/?id=64525 –