|
|
|
| Фото храниться в бд (блоб)
Можно ли это фото вытащив из бд сразу как ни будь вывести в браузер не сохраняя его в файлe? | |
|
|
|
|
|
|
|
для: Саша
(03.07.2005 в 15:08)
| | Да, для этого необходимо создать файл view.php в котором вы будете выводить изоражения - в нём обязательно следует отослать HTTP-заголовок Content-type, который сообщит, что далее идёт изображение, а не текст
<?php
// Посылаем заголовок, что это изображение
header ("Content-type: image/jpeg");
// Извлекаем изображение из базы данных в $result['photo']
// .... код ....
echo $result['photo'];
?>
|
Следует сделать так, чтобы файл выдавал изображения, по уникальному номеру записи в таблице, т.е. view.php?id=2345 или view.php?id=345.
SELECT * FROM tbl WHERE id=$_GET[id]
|
Далее в том месте где вам нужно вывести изображение помещайте код
<img src=http://www.mysite.ru/view.php?id=2345><br>
<img src=http://www.mysite.ru/view.php?id=345><br>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.07.2005 в 16:29)
| | Фотография добавляеться вот таким образом
$file_content = addslashes (fread($file_open,$_FILES['filename']['size']));
|
если сделать
echo $row['filecontent'];
|
то все хорошо, а если
echo stripslashes($row['filecontent']);
|
то пустая картинка. В чем может быть проблема? | |
|
|
|
|
|
|
|
для: Саша
(05.07.2005 в 11:14)
| | Картинка является бинарной последовательностью - её не нужно преобразовывать при выводе функцией stripslashes(), иначе она "побъётся". | |
|
|
|
|
|
|
|
для: cheops
(05.07.2005 в 12:45)
| | Просто есть картинка, она как-то не полностью загружается, в базе та половина отображается не правильно (я через фронт смотрю), как тогда можно избавиться от подобных глюков. Я прочитал у вас, что сам апач любит перекодировать и нужно вставить строчку в конф
<Location />
CharsetRecodeMultipartForms Off
</Location>
Я вставил, но сам апач ее ошибочной воспринимает | |
|
|
|
|
|
|
|
для: Саша
(05.07.2005 в 13:03)
| | Вместо строки
<?php
$file_content = addslashes (fread($file_open,$_FILES['filename']['size']));
?>
|
попробуйте использовать
<?php
$file_content = mysql_escape_string(fread($file_open,$_FILES['filename']['size']));
?>
|
обычно поступают именно таким образом. | |
|
|
|
|
|
|
|
для: cheops
(05.07.2005 в 13:09)
| | тоже самое
возможно дело в самих фото... Т. е. половина загружается, а вторая нет. А может быть сам блоб надо указать длину 3 ил 4? ... Создается впечатление, что оно просто по размерам не вписывается и часть отбарасывает | |
|
|
|
|
|
|
|
для: Саша
(05.07.2005 в 14:58)
| | А вполне может быть... Вы какой BLOB используете?
BLOB - 64 Кб
MEDIUMBLOB - 16 Мб
LONGBLOB - 4 Гб
|
| |
|
|
|
|
|
|
|
для: cheops
(05.07.2005 в 15:10)
| | о, точно, так и есть, по размерам не подходило :-)
теперь все ок, спасибо! | |
|
|
|
|
|
|
|
для: Саша
(05.07.2005 в 15:28)
| | Народ, где грабли?
<?php
//header ("Content-type: image/jpeg");
if ((isset($tname)) && (isset($id)) && (isset($fname)))
{ // Посылаем заголовок, что это изображение
include "cnct.php";
connect();
$res=@mysql_query("select * from laser_cart where cart_mod='Q3962A';");
// Извлекаем изображение из базы данных в $result['photo']
// .... код ....
$result=mysql_fetch_array($res);
echo $res[8];
?>
|
вместо картинки только место под картинку
помогите плз | |
|
|
|
|
|
|
|
для: Byte
(08.07.2005 в 01:32)
| | А откуда появилось $res[8], если функция mysql_fetch_array() возвращает результат в массив $result? | |
|
|
|
|
|
|
|
для: cheops
(08.07.2005 в 02:12)
| | а, это я позабыл назад исправить. голова кругом просто идет, вот и пытался делать на всякий случай даже абсурдные вещи. конечно должно быть $result[8]. 8 - номер поля в котором храниться фото. и еще header на самом деле не закоментирован | |
|
|
|
|
|
|
|
для: Byte
(08.07.2005 в 05:14)
| | Все, всем спасибо. Как всегда сам нашел ошибку, но благодаря тому что сюда написал :). | |
|
|
|
|
|
|
|
для: Byte
(08.07.2005 в 05:37)
| | Еще один вопросик
Есть картинка размером 200х200. Есть ли функция, которая обрезает ее до 50х50. Мне нужно что б в БД хранилось одна большая и ее маленькая копия, но копия делалась автоматически с большой? | |
|
|
|
|
|
|
|
для: Саша
(12.07.2005 в 12:14)
| | функция с софттаймовской галереи...
<?
function resizeimg($filename, $smallimage, $w, $h)
{
$ratio=$w/$h;
$size_img=getimagesize($filename);
if(($size_img[0]<$w) && ($size_img[1]<$h)) return true;
$src_ratio=$size_img[0]/$size_img[1];
if($ratio<$src_ratio) $h=$w/$src_ratio;
else $w=$h*$src_ratio;
$dest_img=imagecreatetruecolor($w,$h);
$white=imagecolorallocate($dest_img, 255, 255, 255);
if($size_img[2]==2) $src_img=imagecreatefromjpeg($filename);
elseif($size_img[2]==1) $src_img=imagecreatefromgif($filename);
elseif($size_img[2]==3) $src_img=imagecreatefrompng($filename);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
if($size_img[2]==2) imagejpeg($dest_img, $smallimage);
elseif($size_img[2]==1) imagegif($dest_img, $smallimage);
elseif($size_img[2]==3) imagepng($dest_img, $smallimage);
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
?>
|
| |
|
|
|
|
|
|
|
для: BAHO
(12.07.2005 в 12:41)
| | Дарова всем,
некоторые картинки после изменения размеров становятся чернобелыми, подскажите почему. Да, все картинки с глубиной цвета 24бита. Спасибо. | |
|
|
|
|
|
|
|
для: Byte
(14.07.2005 в 19:29)
| | ауууу, дайте идейку :) | |
|
|
|