Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вставка изображения в базу данных
 
 автор: hdimon   (14.06.2007 в 14:20)   письмо автору
 
 

Здравствуйте! Очень нужна помощь. Мне нужно вставить картинку в БД. Битый час мучаюсь, перепробовал уже все варианты, пожалуйста, найдите ошибку.
Вот скрипт формы:
<FORM ENCTYPE="multipart/form-data" ACTION="addphoto.php" METHOD="post">
Выберите изображение: <INPUT TYPE="file" NAME="file">
<INPUT TYPE="submit" VALUE="Отправить">
</FORM>
Вот непосредственно обрабатывающий скрипт:
<?php
include "connect_db.php";
$photo = $_POST['file'];
$socket = connectDb('dima','dima','localhost','dima_db');
$add = "INSERT INTO photos (image) values (load_file('$photo'))";
$query = mysql_query($add, $socket);
?>

   
 
 автор: Trianon   (14.06.2007 в 14:27)   письмо автору
 
   для: hdimon   (14.06.2007 в 14:20)
 

это конечно, круто, но малость не то...
если совсем убрать проверку ошибок - то как-то так:
<?php
include "connect_db.php";
$img mysql_escape_string(file_get_contents($_FILE['file']['tmp_name']));
$socket connectDb('dima','dima','localhost','dima_db');
$add "INSERT INTO photos (image) values ('$img')";
$query mysql_query($add$socket);
echo 
mysql_insert_id();
?>

   
 
 автор: hdimon   (14.06.2007 в 14:32)   письмо автору
 
   для: Trianon   (14.06.2007 в 14:27)
 

Спасибо! Но можно объяснить, для чего служит

$img = mysql_escape_string(file_get_contents($_FILE['file']['tmp_name'])); 
? Я еще только учусь, поэтому прошу не судить строго

   
 
 автор: hdimon   (14.06.2007 в 14:36)   письмо автору
 
   для: hdimon   (14.06.2007 в 14:32)
 

И кстати, ваш скрипт не работает также успешно, как и мой, вот только мой хотя бы что-то вставлял (т.е. он показывал, что разрешение "картинки" 0*0, но самой картинки не было)

   
 
 автор: Trianon   (14.06.2007 в 15:03)   письмо автору
 
   для: hdimon   (14.06.2007 в 14:32)
 

а) если где и ожидать имя загруженного файла - то в элементе $_FILE['file']['tmp_name']
нигде в другом месте его не будет.
В этом элементе, впрочем, тоже может не быть.
Смотрите весь массив. print_r($_FILE);

б) file_get_contents() читает тело файла и возвращает его в виде одной длинной цепочки байт.

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

Вы не на том материале учитесь.

   
 
 автор: hdimon   (14.06.2007 в 15:08)   письмо автору
 
   для: Trianon   (14.06.2007 в 15:03)
 


а) если где и ожидать имя загруженного файла - то в элементе $_FILE['file']['tmp_name']
нигде в другом месте его не будет. 
В этом элементе, впрочем, тоже может не быть. 
Смотрите весь массив. print_r($_FILE);

б) file_get_contents() читает тело файла и возвращает его в виде одной длинной цепочки байт. 

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

Вы не на том материале учитесь.

Ну, во-первых, а на каком материале мне учиться? А, во-вторых, ваш-то скрипт, еще раз повторяю, все равно не работает!!!

   
 
 автор: bronenos   (14.06.2007 в 14:30)   письмо автору
 
   для: hdimon   (14.06.2007 в 14:20)
 

1. массив $_FILES
2. надо ли ее еще и на диске сохранять?

   
 
 автор: hdimon   (14.06.2007 в 14:48)   письмо автору
 
   для: bronenos   (14.06.2007 в 14:30)
 

1. массив $_FILES
А что с массивом?
2. На диске сохранять не надо

   
 
 автор: bronenos   (14.06.2007 в 15:06)   письмо автору
 
   для: hdimon   (14.06.2007 в 14:48)
 

потому что в нем инфа о закачанных яафлах остается
трианон, в принципе, показал как

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования