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

Форум PHP

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

 

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

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

тема: как проверить является ли переменная картинкой
 
 автор: ren   (03.06.2008 в 22:55)   письмо автору
 
 

Здравствуйте, таким образом вывожу картинку из поля в бд(BLOB)
если там картинка нужно ее показать , а если что то другое, не нужно
 
header("Content-type: image/gif");
$res=mysql_query("SELECT photo FROM `table` WHERE id='$var'")
or die("SQL ERROR in line ".__LINE__.", function mysql_query");
while (list($photo) = mysql_fetch_array($res)) {
          echo "$photo";
}


как можно реализовать проверку???

   
 
 автор: Trianon   (03.06.2008 в 23:02)   письмо автору
 
   для: ren   (03.06.2008 в 22:55)
 

может лучше и в БД не засовывать, если не картинка, а? ...

   
 
 автор: Киналь   (03.06.2008 в 23:09)   письмо автору
 
   для: ren   (03.06.2008 в 22:55)
 

Во-первых, действительно лучше не засовывать, а во-вторых, если уж очень хочется через БД, то проверку можно делать как минимум двумя способами. Первый - если известен фомат картинки, то проверять на наличие характерных участков (они указаны в спецификации формата). Второй - записать данные из BLOB в файл и проверить его mime-тип. Но это напоминает чистку зубов через нос=)

   
 
 автор: ren   (03.06.2008 в 23:35)   письмо автору
 
   для: Киналь   (03.06.2008 в 23:09)
 

согласен, лучше не засовывать, а как проверить, является ли файл картинкой?

   
 
 автор: Киналь   (04.06.2008 в 00:01)   письмо автору
 
   для: ren   (03.06.2008 в 23:35)
 

Я же написал. Либо по характерным участкам, либо по mime-типу.

   
 
 автор: Trianon   (04.06.2008 в 00:05)   письмо автору
 
   для: ren   (03.06.2008 в 23:35)
 

открыть его by imagecreatefromgif и сохранить by imagegif - на выходе точно окажется картинка.

   
 
 автор: ren   (04.06.2008 в 00:15)   письмо автору
 
   для: Trianon   (04.06.2008 в 00:05)
 

а когда файл выбираю в элемент
<input name="name1" type="file" >
, можно затем осуществить проверку, картинка этот файл или нет?

   
 
 автор: Trianon   (04.06.2008 в 00:29)   письмо автору
 
   для: ren   (04.06.2008 в 00:15)
 

нужно.

   
 
 автор: ren   (04.06.2008 в 00:50)   письмо автору
 
   для: Trianon   (04.06.2008 в 00:29)
 

=) а как ?

   
 
 автор: Trianon   (04.06.2008 в 01:44)   письмо автору
 
   для: ren   (04.06.2008 в 00:50)
 

Именно так, как предложил Киналь и/или я

   
 
 автор: ren   (04.06.2008 в 15:10)   письмо автору
 
   для: Trianon   (04.06.2008 в 01:44)
 

таким образом я проверю gif-формат


$pic_path = "./tmp/".$_FILES["photo_file"]["name"];
$im = @imagecreatefromgif($pic_path);
if (!$im) echo("файл не  гиф!!!");
else echo("файл гиф");


а как реализовать проверку bmp,jpg,png???

   
 
 автор: BinLaden   (04.06.2008 в 15:22)   письмо автору
 
   для: ren   (04.06.2008 в 15:10)
 

> таким образом я проверю gif-формат

Ну это очень зря. Посмотрите exif_imagetype(), getimagesize().

   
 
 автор: ren   (04.06.2008 в 16:40)   письмо автору
 
   для: BinLaden   (04.06.2008 в 15:22)
 

то что надо, спасибо

   
 
 автор: sim5   (04.06.2008 в 16:43)   письмо автору
 
   для: ren   (04.06.2008 в 16:40)
 

exif_imagetype(), требует подключения библиотеки.

   
 
 автор: AcidTrash   (04.06.2008 в 16:48)   письмо автору
 
   для: ren   (04.06.2008 в 16:40)
 

>exif_imagetype() не захотела работать.
Нужно подключить библиотеку php_exif.dll

P.S. Кстати эта функция пошустрее чем getimagesize()

   
 
 автор: sim5   (04.06.2008 в 17:16)   письмо автору
 
   для: AcidTrash   (04.06.2008 в 16:48)
 

Да, шустрее, но требует подключения.

   
 
 автор: AcidTrash   (04.06.2008 в 21:08)   письмо автору
 
   для: sim5   (04.06.2008 в 17:16)
 

>Да, шустрее, но требует подключения
Если на платном нормальном хостинге, то должна быть подключена.
С точки зрения безопасности (для хостингов) она не представляет опасности.
Если на своих машинах(серверах), соответственно хозяин-барин, взять и подключить.

   
 
 автор: sim5   (04.06.2008 в 21:26)   письмо автору
 
   для: AcidTrash   (04.06.2008 в 21:08)
 

Собственно да, но на хорошем, а у нехороших так к техподдержке даже не достучаться.)

   
 
 автор: AcidTrash   (04.06.2008 в 21:35)   письмо автору
 
   для: sim5   (04.06.2008 в 21:26)
 

to Sim5
Вы меня даже заинтриговали :)
Нехороший хостинг, это самопальная контора в подвале? :)
Если так, то не спорю. :)

   
 
 автор: sim5   (04.06.2008 в 23:26)   письмо автору
 
   для: AcidTrash   (04.06.2008 в 21:35)
 

Ну почему, никакой интриги, вроде все чинно сперва было, но потом, после перехода на РНР5, начались проблемы (не кода скриптов, а именно на хосте), потом, видимо, сменился хозяин и вообще ни до кого не достучаться было, как повымерли. :) Это такой случай был с моим знакомым, а хост реально располагался в Канаде.

   
 
 автор: sim5   (04.06.2008 в 16:15)   письмо автору
 
   для: ren   (04.06.2008 в 15:10)
 

$pic_path = $_FILES["photo_file"]["tmp_name"]; , причем, если загружен успешно.

   
 
 автор: ren   (04.06.2008 в 16:51)   письмо автору
 
   для: sim5   (04.06.2008 в 16:15)
 

ага, чтоб работала функция нужно сперва грузить
extension=php_mbstring.dll
а потом
extension=php_exif.dll

в php.ini
спасиб всем кто откликнулся

   
 
 автор: AcidTrash   (04.06.2008 в 16:58)   письмо автору
 
   для: ren   (04.06.2008 в 16:51)
 

правильно :)

   
Rambler's Top100
вверх

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