|
|
|
| Всем доброго времени суток!
У меня появилась проблема с тем как мне вывести картинку из БД.
Вот код загрузки картинки в БД 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: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:05)
| | А как еще сделать условие чтобы картинка не была больше определенных размеров например не больше 100*100? | |
|
|
|
|
|
|
|
для: Buhen
(25.12.2007 в 16:10)
| | Никто не знает как сделать ограничение на размер картинки?? | |
|
|
|
|
|
|
|
для: Buhen
(25.12.2007 в 16:10)
| | вообще-то это уже не по теме, но можно так:
<?php
$image = "somepicture.gif";
$width = 100;
$height = 100;
$size = getimagesize($image);
if($image[0] >$width || $image[1]>$height)
{
/*Тут уже сами: либо меняете размер, либо говорите что размер не допустимый пусть юзер парится*/
}
?>
|
| |
|
|
|