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

Форум MySQL

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

 

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

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

тема: Загрузка картинок в базу данных и вывод их в окно браузера
 
 автор: Buhen   (25.12.2007 в 16:04)   письмо автору
 
 

Всем доброго времени суток!
У меня появилась проблема с тем как мне вывести картинку из БД.
Вот код загрузки картинки в БД Mysql:
<?
if(!empty($_FILES))
{
 if(
$_FILES['image']['size'] >= 15000)
{
 echo 
"Слишком большой размер аватара";
}
}                                       
else
{
 
//Загрузка аватара
                         // Читаем содержимое файла
                      
$content file_get_contents($_FILES['image']['tmp_name']);
// Уничтожаем файл во временной директории
                      
unlink($_FILES['image']['tmp_name']);

// Экранируем спец-символы в бинарном содержимом файла
                      
$content mysql_escape_string($content);
                      
$login addslashes($_SESSION['id_login']);
    
    
$login addslashes($_SESSION['id_login']);
$query "SELECT * FROM image WHERE login_id=$login";
$result mysql_query ($query) or die("Неправильный запрос : " mysql_error());
if (
mysql_num_rows ($result) == '1')
{
  
$query_image mysql_query("UPDATE image 
SET name='"
.$_FILES['image']['name']."', 
content='"
.$content."', 
insert_date='"
.date("Y:m:d H:i:s")."' 
WHERE login_id=
$login") or 
die(
"Неправильный запрос : " mysql_error()); 
}
else
{
  
// Формируем запрос на добавление файла в таблицу
$query_image "INSERT INTO image (name, 
content, login_id, insert_date) 
VALUES('"
.$_FILES['image']['name']."', 
'
$content', '$login', '".date("Y:m:d 
H:i:s"
)."')";
$result_image mysql_query ($query_image) or die("Неправильный запрос : " mysql_error());
  }
}
?>

(У меня 2 условия загрузки если уже есть
картинка у пользователя то старая
замещается новой)

Вот форма загрузки:
<input type="file" name="image">(форма отправки есть)

А вот сам вывод картинки:


<?
$login_im 
htmlspecialchars(stripslashes($row->login_id));
query_im "SELECT * FROM image WHERE login_id=".$login_im."";
$result_im mysql_query ($query_im) or die("Неправильный запрос : " mysql_error());    
if (
mysql_num_rows ($result_im) == 0)
{}
else

  
$row_im mysql_fetch_object($result_im);
  
$id $row_im->id_image;
  echo 
"<img src=get.php?id_image=$id><br>";
}
?>

$id присваивается так что норм.
А вот когда открываешь страничку то либо рисунка нету(пишется что он недоступен) или вот уже счас вместа картинки какой-то черный прямоугольник на котором пишется Picture showing 8 characters.
Не понимаю почему из бд не достается картинка. Хотя в свойствах этой картинки размеры показаны и написано что PHP файл и указан размер.
Помогите))

   
 
 автор: Buhen   (25.12.2007 в 16:05)   письмо автору
 
   для: Buhen   (25.12.2007 в 16:04)
 

Вот таблица image:


CREATE TABLE `image` (
  `id_image` int(11) NOT NULL auto_increment,
  `name` tinytext NOT NULL,
  `content` longblob NOT NULL,
  `login_id` int(11) NOT NULL,
  `insert_date` datetime NOT NULL,
  PRIMARY KEY  (`id_image`)
)

   
 
 автор: Buhen   (25.12.2007 в 16:10)   письмо автору
 
   для: Buhen   (25.12.2007 в 16:05)
 

А как еще сделать условие чтобы картинка не была больше определенных размеров например не больше 100*100?

   
 
 автор: Buhen   (25.12.2007 в 19:43)   письмо автору
 
   для: Buhen   (25.12.2007 в 16:10)
 

Никто не знает как сделать ограничение на размер картинки??

   
 
 автор: hell_riser   (28.12.2007 в 12:06)   письмо автору
 
   для: Buhen   (25.12.2007 в 16:10)
 

вообще-то это уже не по теме, но можно так:

<?php
  $image 
"somepicture.gif";
  
$width 100;
  
$height 100;
  
$size getimagesize($image);
  if(
$image[0] >$width || $image[1]>$height)
  {
    
/*Тут уже сами: либо меняете размер, либо говорите что размер не допустимый пусть юзер парится*/
  
}
?>

   
Rambler's Top100
вверх

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