|
Тема
|
Help....Показване на картинка от MySQL...
|
|
Автор |
HackerMy (непознат
) |
Публикувано | 10.11.10 19:14 |
|
Здравейте! Отскоро започнах да уча PHP и ми липсват някои начални познания......
Опитвам се да покажа картинка на Веб страница от MySQL база данни и нещо не се получава. Ето го и проклетия код, който би трябвало да работи ама изкарва само маймуни на страницата...:
Name: ppp.php
<?php
include_once("dbConfig.php");
$q = "SELECT * FROM Usr WHERE (U_UserName='User1')AND(U_Password='1234')";
$r = mysql_query($q);
if (!$r)
{
echo mysql_errno($conn) . ": " . mysql_error($conn). "\n";
echo "<br />";
echo "<br />";
}
else
{
$row = mysql_fetch_array($r);
$content = $row['U_Picture'];
header('Content-type: image/jpg');/* --> тука дава предупреждение и резултата е: нова страница с надпис: http://localhost/ppp.php. Като махна този ред и на екрана се показват маймуни(символи в аски код) */
echo $content;
}
?>
<img src=$content> --> това е само за проба ама май трябва да дам име на файл......
Предполагам, че въпроса ми е елементарен ама......нема начин..
Мерси предварително.
| |
Тема
|
Re: Help....Показване на картинка от MySQL...
[re: HackerMy]
|
|
Автор |
croesus (хлевоуст) |
Публикувано | 11.11.10 01:33 |
|
Първо, провери дали полето U_Picture в базата е blob.
Второ, предупреждението при header() виж дали не идва, защото се опитваш да изпишеш нещо преди това, което ще пусне header. не можеш да имаш примерно <html><head>....<body>.... и чак след това header() да пише нещо.
Мисля си обаче, че твоя проблем е друг. Опитваш се да заредиш бинарен код и да го сложиш в таг <img>, което е невъвъзможно. Или трябва да "изплюеш" бинарния код директно в браузъра, като укажеш с header() как да го разбира (картинка, pdf, Екселски файл или друго) или да го кешнеш в локален файл, като му запомниш пътя, който след това да сложиш ПЪТЯ в <img src="..." />
В първия случай браузъра ще зареди само картинка и нищо друго. Това, което ще пуснеш след header() изобщо няма да е html документ, а бинарния код на jpeg, който браузъра, понеже има плъгин за изобразяване на картинки, ще покаже. Ако няма плъгин за рендване на jpg файлове ще те пита дали искаш да запазиш файла на компютъра или ще ти изпише маймунски символи.
Ето това е пример за резултата, който ще получиш - само снимка и нищо друго.
Ако искаш да я заредиш като част от съдържанието на уеб страница тогава първо с file_put_content() или подобна функция кешни информацията от базата в локален файл и му запомни пътя (по-добре като URL, не като абослютен път на сървъра ти - /home/hackera/kartinki/1.jpg ). След това, както ти писах по-горе в <img> задай src да е този път.
Можеш и по някой изгъзен начин да направиш горното. Например да сложиш iframe, а то да показва документ, който е само и единствено картинката от базата (зададена с header()). Така ще си спестиш главоболия с това как да управляваш кеша на картинките, защото например след 1000 зареждания на 3-4 картинки може да имаш кеш от 200-300 мегабайта, ако имената им са неповтарящи се.
| |
Тема
|
Re: Help....Показване на картинка от MySQL...
[re: croesus]
|
|
Автор |
HackerMy (непознат
) |
Публикувано | 11.11.10 20:21 |
|
Много мерси за мнението. Ами направих cash на имиджа на диска и го заредих с <img src="path/image.jpg"> и всичко тръгна перфектно. Единствено ме притеснява дали това е добър(общоприет) начин при Web програмирането....не се ли бавят много заявките(четеш от таблицата(MySQL) после записваш прочетеното на файл(image.jpg) после зареждаш файла в <img src="path/image.jpg">) няма ли по бръз начин... в таблицата имам няколко хиляди записа и ако трябва да ги покажа всичките (на порции от по 200 записа) ще се види забавянето......
Мерси предварително.
п.п. Нямам опит в Web програмирането затова задавам въпроси за начинаещи.
| |
Тема
|
Re: Help....Показване на картинка от MySQL...
[re: HackerMy]
|
|
Автор |
edembg (Ученик) |
Публикувано | 12.11.10 10:47 |
|
Този начин наистина работи, но според мен обезмисля записа на картинката в база данни. Погледни това:
http://www.google.com/search?q=php+show+image+from+database&rls=com.microsoft:bg:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7SKPB_en
Показани са начини за ползване на картинки директно от базата, без междинен запис.
Успех
И най-ярките личности си плащат тока.
| |
|
|
|
|