The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Непонятки с php & GD bundled (2.0.28 compatible)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Simps Искать по авторуВ закладки(??) on 06-Дек-04, 19:37  (MSK)
Вот лог моего скрипта
file is not a valid image file

Вот код php
if (move_uploaded_file($_FILES['handtmann_picture']['tmp_name'], $uploadfile)) {
echo "<br \>Calling function createPic() with ".$_FILES['handtmann_picture']['name']." and ".$uploadfile."<br \>";
$result_array = getimagesize($uploadfile);

if ($result_array !== false) {
   $mime_type = $result_array['mime'];
   switch($mime_type) {
       case "image/jpeg":
           echo "file is jpeg type";
           break;
       case "image/gif":
           echo "file is gif type";
           break;
       default:
           echo "file is an image, but not of gif or jpeg type";
   }
} else {
   echo "file is not a valid image file";
   exit;
}
$handtmann_picture = "/www/www.xxx.spb.ru/images/".createPic($uploadfile, $_FILES['handtmann_picture']['name'] );
}
функция createPic

function createPic($picPath, $picName) {
   $ext=strtolower(substr($picName,-3));
   $thumb_x=209;
   $thumb_y=285;
   $path_start='';
   $small_path = "/www/www.xxx.spb.ru/images/".$picName;
   $im_src = ($ext=='jpg')?ImageCreateFromJPEG ($picPath):ImageCreateFromGIF($picPath);
$im_dst = ($ext=='jpg')?ImageCreateTrueColor ($thumb_x,$thumb_y):ImageCreate ($thumb_x,$thumb_y);
$background_color = ImageColorAllocate ($im_dst, 255, 255, 255);
$k=(imagesx($im_src)>imagesy($im_src))?$thumb_y/imagesy($im_src):$thumb_x/imagesx($im_src);
   $new_sizex=round(imagesx($im_src)*$k);
   $new_sizey=round(imagesy($im_src)*$k);
   $x_step=(imagesx($im_src)>imagesy($im_src))?(imagesx($im_src)-imagesy($im_src))/2:0;
$y_step=(imagesx($im_src)<imagesy($im_src))?(imagesy($im_src)-imagesx($im_src))/2:0;
   imagecopyresampled($im_dst,$im_src,0,0,$x_step,$y_step,$new_sizex,$new_sizey,imagesx($im_src),imagesy($im_src));
if ($ext=='jpg') {
      imagejpeg($im_dst,$small_path);
}
else {
   imagegif($im_dst,$small_path);
   }
return($picName);
}

В итоге заремил все gd'ное и просто попробовал зааплоадить картинку на сервер и переписав обратно открыть ... Нифига ... Заметил что внутри файла некоторые, как их там =), байтики не совпадают ... Точнее в hex-редакторе вижу один и тот же символ в оригинале и копии а коды у них разные ...

Получается что картинка уже прилетает на сервер покоцаной, хотя форма сделана как в мануале php по шаблону

<form enctype="multipart/form-data" action="_URL_" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Отправить этот файл: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>

В чем может быть замес?

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Simps Искать по авторуВ закладки(??) on 06-Дек-04, 19:38  (MSK)
>Вот лог моего скрипта
>file is not a valid image file
>
>Вот код php
>if (move_uploaded_file($_FILES['handtmann_picture']['tmp_name'], $uploadfile)) {
>echo "<br \>Calling function createPic() with ".$_FILES['handtmann_picture']['name']." and ".$uploadfile."<br \>";
>$result_array = getimagesize($uploadfile);
>
>if ($result_array !== false) {
>   $mime_type = $result_array['mime'];
>   switch($mime_type) {
>       case "image/jpeg":
>           echo
>"file is jpeg type";
>           break;
>
>       case "image/gif":
>           echo
>"file is gif type";
>           break;
>
>       default:
>           echo
>"file is an image, but not of gif or jpeg type";
>
>   }
>} else {
>   echo "file is not a valid image file";
>   exit;
>}
>$handtmann_picture = "/www/www.xxx.spb.ru/images/".createPic($uploadfile, $_FILES['handtmann_picture']['name'] );
>}
>функция createPic
>
>function createPic($picPath, $picName) {
>   $ext=strtolower(substr($picName,-3));
>   $thumb_x=209;
>   $thumb_y=285;
>   $path_start='';
>   $small_path = "/www/www.xxx.spb.ru/images/".$picName;
>   $im_src = ($ext=='jpg')?ImageCreateFromJPEG ($picPath):ImageCreateFromGIF($picPath);
> $im_dst = ($ext=='jpg')?ImageCreateTrueColor ($thumb_x,$thumb_y):ImageCreate ($thumb_x,$thumb_y);
> $background_color = ImageColorAllocate ($im_dst, 255, 255, 255);
> $k=(imagesx($im_src)>imagesy($im_src))?$thumb_y/imagesy($im_src):$thumb_x/imagesx($im_src);
>   $new_sizex=round(imagesx($im_src)*$k);
>   $new_sizey=round(imagesy($im_src)*$k);
>   $x_step=(imagesx($im_src)>imagesy($im_src))?(imagesx($im_src)-imagesy($im_src))/2:0;
> $y_step=(imagesx($im_src)<imagesy($im_src))?(imagesy($im_src)-imagesx($im_src))/2:0;
>   imagecopyresampled($im_dst,$im_src,0,0,$x_step,$y_step,$new_sizex,$new_sizey,imagesx($im_src),imagesy($im_src));
> if ($ext=='jpg') {
>      imagejpeg($im_dst,$small_path);
> }
> else {
>   imagegif($im_dst,$small_path);
>   }
>return($picName);
>}
>
>В итоге заремил все gd'ное и просто попробовал зааплоадить картинку на сервер
>и переписав обратно открыть ... Нифига ... Заметил что внутри файла
>некоторые, как их там =), байтики не совпадают ... Точнее в
>hex-редакторе вижу один и тот же символ в оригинале и копии
>а коды у них разные ...
>
>Получается что картинка уже прилетает на сервер покоцаной, хотя форма сделана как
>в мануале php по шаблону
>
><form enctype="multipart/form-data" action="_URL_" method="post">
> <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
> Отправить этот файл: <input name="userfile" type="file" />
> <input type="submit" value="Send File" />
></form>
>
>В чем может быть замес?

php 4.3.9, Apache/1.3.27 (Unix)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Simps Искать по авторуВ закладки(??) on 07-Дек-04, 10:35  (MSK)
>>Вот лог моего скрипта
>>file is not a valid image file
>>
>>Вот код php
>>if (move_uploaded_file($_FILES['handtmann_picture']['tmp_name'], $uploadfile)) {
>>echo "<br \>Calling function createPic() with ".$_FILES['handtmann_picture']['name']." and ".$uploadfile."<br \>";
>>$result_array = getimagesize($uploadfile);
>>
>>if ($result_array !== false) {
>>   $mime_type = $result_array['mime'];
>>   switch($mime_type) {
>>       case "image/jpeg":
>>           echo
>>"file is jpeg type";
>>           break;
>>
>>       case "image/gif":
>>           echo
>>"file is gif type";
>>           break;
>>
>>       default:
>>           echo
>>"file is an image, but not of gif or jpeg type";
>>
>>   }
>>} else {
>>   echo "file is not a valid image file";
>>   exit;
>>}
>>$handtmann_picture = "/www/www.xxx.spb.ru/images/".createPic($uploadfile, $_FILES['handtmann_picture']['name'] );
>>}
>>функция createPic
>>
>>function createPic($picPath, $picName) {
>>   $ext=strtolower(substr($picName,-3));
>>   $thumb_x=209;
>>   $thumb_y=285;
>>   $path_start='';
>>   $small_path = "/www/www.xxx.spb.ru/images/".$picName;
>>   $im_src = ($ext=='jpg')?ImageCreateFromJPEG ($picPath):ImageCreateFromGIF($picPath);
>> $im_dst = ($ext=='jpg')?ImageCreateTrueColor ($thumb_x,$thumb_y):ImageCreate ($thumb_x,$thumb_y);
>> $background_color = ImageColorAllocate ($im_dst, 255, 255, 255);
>> $k=(imagesx($im_src)>imagesy($im_src))?$thumb_y/imagesy($im_src):$thumb_x/imagesx($im_src);
>>   $new_sizex=round(imagesx($im_src)*$k);
>>   $new_sizey=round(imagesy($im_src)*$k);
>>   $x_step=(imagesx($im_src)>imagesy($im_src))?(imagesx($im_src)-imagesy($im_src))/2:0;
>> $y_step=(imagesx($im_src)<imagesy($im_src))?(imagesy($im_src)-imagesx($im_src))/2:0;
>>   imagecopyresampled($im_dst,$im_src,0,0,$x_step,$y_step,$new_sizex,$new_sizey,imagesx($im_src),imagesy($im_src));
>> if ($ext=='jpg') {
>>      imagejpeg($im_dst,$small_path);
>> }
>> else {
>>   imagegif($im_dst,$small_path);
>>   }
>>return($picName);
>>}
>>
>>В итоге заремил все gd'ное и просто попробовал зааплоадить картинку на сервер
>>и переписав обратно открыть ... Нифига ... Заметил что внутри файла
>>некоторые, как их там =), байтики не совпадают ... Точнее в
>>hex-редакторе вижу один и тот же символ в оригинале и копии
>>а коды у них разные ...
>>
>>Получается что картинка уже прилетает на сервер покоцаной, хотя форма сделана как
>>в мануале php по шаблону
>>
>><form enctype="multipart/form-data" action="_URL_" method="post">
>> <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
>> Отправить этот файл: <input name="userfile" type="file" />
>> <input type="submit" value="Send File" />
>></form>
>>
>>В чем может быть замес?
>
>php 4.3.9, Apache/1.3.27 (Unix)

Странная ситуация ... Последнее время на opennet на мои вопросы тупо нет ответов ...

Чтобы не было этих проблем, нужно выключить перекодирование для данных
загружаемый из формы. Для этого в каталог со скриптами (или прямо в
корневой каталог веб-сервера) нужно положить файл .htaccess с директивой

CharsetRecodeMultipartForms off

Тогда все будет нормально.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от MeLLowD Искать по авторуВ закладки(ok) on 07-Дек-04, 13:59  (MSK)
>Странная ситуация ... Последнее время на opennet на мои вопросы тупо нет
>ответов ...

Интересно кому охота убивать свое время и разбираться в чужом коде на две страницы, да еще и абсолютно не читабельном? Вопросы нужно ставить более точно и грамотно.

>
>Чтобы не было этих проблем, нужно выключить перекодирование для данных
>загружаемый из формы. Для этого в каталог со скриптами (или прямо в
>
>корневой каталог веб-сервера) нужно положить файл .htaccess с директивой
>
>CharsetRecodeMultipartForms off
>
>Тогда все будет нормально.

Вот если бы ты не постил сюда куски своего скрипта, а укказал бы что у тебя русский апачь стоит, то и ответ получил бы бысро.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Simps Искать по авторуВ закладки(??) on 07-Дек-04, 16:55  (MSK)
>>Странная ситуация ... Последнее время на opennet на мои вопросы тупо нет
>>ответов ...
>
>Интересно кому охота убивать свое время и разбираться в чужом коде на
>две страницы, да еще и абсолютно не читабельном? Вопросы нужно ставить
>более точно и грамотно.
>
>>
>>Чтобы не было этих проблем, нужно выключить перекодирование для данных
>>загружаемый из формы. Для этого в каталог со скриптами (или прямо в
>>
>>корневой каталог веб-сервера) нужно положить файл .htaccess с директивой
>>
>>CharsetRecodeMultipartForms off
>>
>>Тогда все будет нормально.
>
>Вот если бы ты не постил сюда куски своего скрипта, а укказал
>бы что у тебя русский апачь стоит, то и ответ получил
>бы бысро.

Комментарии приняты ... Это не мой апач а провайдера, и ответ на каждый вопрос из них приходится выдирать клещами, поэтому решил ускорить процесс и распараллелил его на Opennet

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Lucky emailИскать по авторуВ закладки(??) on 08-Дек-04, 08:00  (MSK)
>Это не мой апач а провайдера, и ответ на

бежать от провайдера с русским апачем

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Simps Искать по авторуВ закладки(??) on 08-Дек-04, 10:51  (MSK)
>>Это не мой апач а провайдера, и ответ на
>
>бежать от провайдера с русским апачем

Это я понимаю, только тут история как в мексиканских сериалах =) Сначала сайт захостили на какой то мега древности (в плане apache и php), теперь вот перевели на "мега" хостинг =) ... Мало того что у них пхп собран со всеми своими приблудами типа GD mysql и т.д. как shared так еще и всякие косяки из русского апача ...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Lucky emailИскать по авторуВ закладки(??) on 08-Дек-04, 10:55  (MSK)
Мало того
>что у них пхп собран со всеми своими приблудами типа GD
>mysql и т.д.
Хочу спросить - а как его еще то собирать? без гд и мускуля?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Simps Искать по авторуВ закладки(??) on 08-Дек-04, 11:03  (MSK)
>Мало того
>>что у них пхп собран со всеми своими приблудами типа GD
>>mysql и т.д.
>Хочу спросить - а как его еще то собирать? без гд и
>мускуля?
Так и я говорю что я не ожидал что это все будет собрано как shared и нужно будет лезть в php.ini и включать то что нужно ... Я признаюсь испытал легкий шок когда мне написало что php не знает такой функции как mysql_connect =)
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "Непонятки с php & GD bundled (2.0.28 compatible)" 
Сообщение от Lucky emailИскать по авторуВ закладки(??) on 08-Дек-04, 11:05  (MSK)
>>Мало того
>>>что у них пхп собран со всеми своими приблудами типа GD
>>>mysql и т.д.
>>Хочу спросить - а как его еще то собирать? без гд и
>>мускуля?
>Так и я говорю что я не ожидал что это все будет
>собрано как shared и нужно будет лезть в php.ini и включать
>то что нужно ... Я признаюсь испытал легкий шок когда мне
>написало что php не знает такой функции как mysql_connect =)

да, это засада

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру