HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Искажение изображений при POST multipart/form-data
  #1  
Старый 01.06.2010, 20:09
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
С нами: 10255414

Репутация: 151
По умолчанию Искажение изображений при POST multipart/form-data

Писал пост в "вопросы по PHP", но вопрос быстро затерялся, так и не ответили. Сам в итоге так и не разобрался, поэтому создаю тему.

Помогите разобраться.
Была проблема с загрузкой постом файлов на сервак.
Накидал вот такой скрипт для теста (кинул в папку с правами 777).

PHP код:
<?php
if (empty($_FILES["img_file"]["name"])) {
?>
<form action="index.php" method="POST" enctype="multipart/form-data">
img: <input type="file" name="img_file" />
<input type="submit" value="Загрузить" />
</form>
<?php
}
else {

$imageinfo getimagesize($_FILES['img_file']['tmp_name']);
 if(
$imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/png'
{
echo 
'<span style="font-size:13px;">Ошибка загрузки изображения.</span>';
}

else
{
move_uploaded_file($_FILES["img_file"]["tmp_name"], $_FILES["img_file"]["name"]);

echo 
'<img src="'.$_FILES["img_file"]["name"].'" />';
}
}
?>
На денвере всё замечательно. Загружаются jpg,gif,png.

А вот при заливке на хостинг начинаются проблемы.

1) При попытке загрузки jpg/jpeg вываливает "Ошибка загрузки изображения". Причём, $_FILES['img_file']['tmp_name'] не пуст! А вот getimagesize от него уже не берётся - пусто. Правда, догадываюсь, что это связано со вторым вопросом

2) При загрузке оставшихся png и gif он их загружает, отрабатывается move_uploaded_file (файл появляется в папке), но вот потом нифига не отображается. В мозиллке отображается иконка повреждённого файла, в IE крестик...Если слить с сервера файл - не открывается уже. Откуда берётся эта "обработка" файла?
 
Ответить с цитированием

  #2  
Старый 01.06.2010, 20:32
SHiNiGaMi
Познающий
Регистрация: 03.01.2010
Сообщений: 42
С нами: 8606717

Репутация: 3
По умолчанию

Я же тебе ответил как я решил проблему... Я короче все в GIF переделывал и не парился.

Накрайняк попробуй открыть как бинарник и в каждой строке \r\n заменить на \n. Бред, но попробовать чисто ради интереса надо

Последний раз редактировалось SHiNiGaMi; 01.06.2010 в 20:35..
 
Ответить с цитированием

  #3  
Старый 01.06.2010, 21:02
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
С нами: 10255414

Репутация: 151
По умолчанию

SHiNiGaMi, cорри, забыл там ответить.

Если ты имеешь в виду переделывать программно, скриптом - то не катит, т.к. он не воспринимает jpg, как картинку, в принципе.
Это одна из причин. Вторая - 256 цветов ну никак не хватает

Ну и третья - gif'ы тоже не загружаются нормально. Я ж говорю, gif и png "портятся", jpg вообще не воспринимаются...

Сравнил файлы сейчас.
При заливке на сервак символы заменены на пробелы. Как это лечить?

upd: символ 00 заменяется везде на 20
Как вернуть 00 на родину?..

Последний раз редактировалось FindeR; 01.06.2010 в 21:20..
 
Ответить с цитированием

  #4  
Старый 01.06.2010, 21:29
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
С нами: 9443906

Репутация: 3313


По умолчанию

с 00 ты уверен ?
 
Ответить с цитированием

  #5  
Старый 01.06.2010, 21:32
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
С нами: 10255414

Репутация: 151
По умолчанию

Открыл hex-редактором, посмотрел оба файла. Отличаются только этим. Вместо 00 (NUL) везде 20 (пробел)

Последний раз редактировалось FindeR; 01.06.2010 в 21:34..
 
Ответить с цитированием

  #6  
Старый 01.06.2010, 21:42
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
С нами: 11058146

Репутация: 4536


По умолчанию

хм. а как ты заливаешь файлы? в принципе у curl никогда не было проблем с заливкой файлов и никаких особых знаний и мозгоебателсьтв, которые есть в fsockopen, там нету.
 
Ответить с цитированием

  #7  
Старый 01.06.2010, 21:46
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
С нами: 10255414

Репутация: 151
По умолчанию

GreenBear, в первом посте весь скрипт..

Сначала постом с enctype="multipart/form-data" файл падает на сервак, в tmp.

Потом через move_uploaded_file() кладу его, куда мне нужно. Судя по тому, что неправильно берётся getimagesize, проблема при загрузке постом.

Есть уже готовый проект, который работает отлично на masterhost'e, сейчас вот залил на хостинг от nic.ru - такая байда.

Последний раз редактировалось FindeR; 01.06.2010 в 21:49..
 
Ответить с цитированием

  #8  
Старый 01.06.2010, 21:54
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
С нами: 11058146

Репутация: 4536


По умолчанию

стало быть проблема в хостинге.
 
Ответить с цитированием

  #9  
Старый 01.06.2010, 22:01
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
С нами: 10255414

Репутация: 151
По умолчанию

Так увлёкся поиском косяков в своём проекте, что забыл о настройках хостинга.
Выключил charset_module, всё стало на свои места
Всем спасибо, тему можно прикрыть.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
химия своими руками silveran Болталка 43 11.01.2006 22:05



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.