Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

записать картинку в базу (mysql)

2.7K
29 января 2004 года
dimax
25 / / 27.11.2003
гружу картинку, надо записать её в базу (mysql), потом прочитать оттеда и нарисовать. разбирался сам,- чевота недагон, кризис X), в документации это практически не обьясняют :( плиз, дайте элементарный кодик этава дела или ссылку где это объясняется.
заранее благодарен
4.8K
29 января 2004 года
Sonny
14 / / 28.01.2004
Цитата:
Originally posted by dimax
гружу картинку, надо записать её в базу (mysql), потом прочитать оттеда и нарисовать. разбирался сам,- чевота недагон, кризис X), в документации это практически не обьясняют :( плиз, дайте элементарный кодик этава дела или ссылку где это объясняется.
заранее благодарен



http://php.spb.ru/php/image.html

сам кстати пробовал загружать в базу postgresql, загружать то загружается, а извлечь не могу. Нутром чувcтвую, что проблема в header, но разобраться не могу (третий день всего за клавой :).
Хотя простое
<?
header("Content-type: image/gif");
readfile("image.jpg");
?>
работает.

1.9K
29 января 2004 года
HabaHaba
172 / / 24.12.2003
По первому вопросу, хочу добавить, что хранить картинки в базе, тем более в MySQL это не очень хорошо для производительности и роста базы. ИМХО, гораздо лучше хранить файл на диске а в БД только имя.
Цитата:
Originally posted by Sonny
.......
Нутром чувcтвую, что проблема в header, но разобраться не могу (третий день всего за клавой :).
Хотя простое
<?
header("Content-type: image/gif");
readfile("image.jpg");
?>
работает.


А тебе кроме вот этого "простого" больше ничего и не нужно :)
Создай файл img.php и делай на него src:

2.7K
29 января 2004 года
dimax
25 / / 27.11.2003
Цитата:
Originally posted by HabaHaba
По первому вопросу, хочу добавить, что хранить картинки в базе, тем более в MySQL это не очень хорошо для производительности и роста базы. ИМХО, гораздо лучше хранить файл на диске а в БД только имя.


без права записи на диск..

2.7K
29 января 2004 года
dimax
25 / / 27.11.2003
Цитата:
Originally posted by Sonny

http://php.spb.ru/php/image.html


на этом сайте всё объясняют очень подробно, но кроме того что мне нужно :(
как это делается с загружаемым файлом, без записи его на диск??
я пробовал так:

Код:
<?
if(isset($file)){
 $failo=$_FILES['file']['tmp_name'];
 $fp=fopen($failo,"r");
 $up=fread($fp,filesize($failo));
 $str="insert into fotos(foto) values('".$up."')";
 mysql_query('fotos',$str);
} ?>
<body>
 <form action="<? $_SERVER['PHP_SELF']?>" method="post"
 enctype="multipart/form-data">
 <input type="file" name="file">
 <input type="submit">
 </form>

нихрена не работает, потому как не может открыть и прочитать (не находит) подгружаемое файло :(
и вообще насколько я понял как не верти, а для того чтобы реализовать это (возможность загрузки картинок) полюбому нужно иметь право записи на диск??
потому как если даже записывать картинки в бд, то потом чтобы их рисовать в браузер нужно делать файл. это так?
1.9K
29 января 2004 года
HabaHaba
172 / / 24.12.2003
Цитата:
Originally posted by dimax
..... потому как не может открыть и прочитать (не находит) подгружаемое файло :(
.....
чтобы реализовать это (возможность загрузки картинок) полюбому нужно иметь право записи на диск?
......


Полюбому, необходима возможность записи в tmp.

Цитата:
Originally posted by dimax
....
то потом чтобы их рисовать в браузер нужно делать файл. это так?


Нужно 1 раз нарисовать скрипт который по входящим параметрам будет брать из базы картинку и выводить её с соответствующим хэдером и потом всюду, где нужно картинку показать указывать src на этот скрипт с параметром.
Типа:
Скрипты то ты на сервер можешь заливать?

437
30 января 2004 года
Lsd[52r]
106 / / 20.12.1999
Цитата:
Originally posted by HabaHaba

Полюбому, необходима возможность записи в tmp.



а может попробовать читать stdin??!! тогда сохранять на диск ничего не надо! читаем из потока переменную переданную POST и сразу в базу ее!

2.7K
30 января 2004 года
dimax
25 / / 27.11.2003
Цитата:
Originally posted by HabaHaba

Полюбому, необходима возможность записи в tmp.


для начала скрипт каторый я привёл выше не фурычит у меня на локальном серваке, где права у меня есть ;) я не панимаю почему у меня после сабмита файло не записывается в темп? и где ано астаётся? висит в раме? и как тады ево запихнуть в базу?

Цитата:
Originally posted by HabaHaba

Скрипты то ты на сервер можешь заливать?


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

Цитата:
Originally posted by Lsd[52r]

а может попробовать читать stdin??!! тогда сохранять на диск ничего не надо! читаем из потока переменную переданную POST и сразу в базу ее!


можно ли немного пападробней, таварищ Лсд? а ещё лучше примерчик кодика если вазможна?

1.9K
30 января 2004 года
HabaHaba
172 / / 24.12.2003
Цитата:
Originally posted by dimax
.....
я не панимаю почему у меня после сабмита файло не записывается в темп? и где ано астаётся?


Сдраствуи, друк.
В php.ini есть такайа настроика - "upload_tmp_dir".
Она у тибиа в правильное место паказывает?
Лично у меня твой скрипт заработал (номинально, т.е. в базу класть не пробовал но sql сформировал). Так что тут скорее всего дело в настройках.

537
30 января 2004 года
Cover
87 / / 14.11.2002
Цитата:

а может попробовать читать stdin??!! тогда сохранять на диск ничего не надо! читаем из потока переменную переданную POST и сразу в базу ее!



Интересно, это как это так читать stdin?
Насколько я знаю, то при передаче файлов POST-ом, они сразу записываются в temp (ну т.е. наш скрипт этому помешать не может).

283
30 января 2004 года
Alone
910 / / 20.11.2002
Цитата:
Originally posted by Cover
Интересно, это как это так читать stdin?
Насколько я знаю, то при передаче файлов POST-ом, они сразу записываются в temp (ну т.е. наш скрипт этому помешать не может).


php only ;)

437
31 января 2004 года
Lsd[52r]
106 / / 20.12.1999
Цитата:
Originally posted by Cover


Интересно, это как это так читать stdin?
Насколько я знаю, то при передаче файлов POST-ом, они сразу записываются в temp (ну т.е. наш скрипт этому помешать не может).



читаем stdin:

 
Код:
$in=fopen("php://stdin","r") or die();


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

Цитата:
можно ли немного пападробней, таварищ Лсд? а ещё лучше примерчик кодика если вазможна?


код писать не буду, некогда, а вот общую идею пожайлуста.... в двух словах тебе нужно проинициализировать собственный массив переменных переданных методом POST.... т.е. читаешь стандартный поток ввод в котором содержаться все переменные с их значениеями в виде
var1=val1&var2=val2 и т.д.
читаешь из него блок размером

 
Код:
$length=getenv("CONTENT_LENGTH");

полученный блок это и есть строчка из переменных... дальше делаешь разбор строк соответсвующим образом... и все... потом пихаешь в базу содержимое нужной тебе переменной....

Идея такая.
2.7K
31 января 2004 года
dimax
25 / / 27.11.2003
Цитата:
Originally posted by HabaHaba

Сдраствуи, друк.
В php.ini есть такайа настроика - "upload_tmp_dir".


разабрался, спасиба. эта настройка была просто отключина. а по поводу великого и могучиго русского языка намёк понял, обещаю подтянуть как только разбирусь с пхп ;) и ещё когда писал тот пост был не совсем трезв, пардон.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог