Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Загрузка файлов Mozilla vs IE


Автор: armor85 9.10.2007, 13:20
Проблема, не загружаются картинки на мой сервер. Причём в Mozilla всё прекрасно работает, а в IE нет. Нет смысла приводить здесь код из скрипта, просто кто сталкивался, помогите!

Автор: webevt 9.10.2007, 13:30
Цитата(armor85 @  9.10.2007,  13:20 Найти цитируемый пост)
смысла приводить здесь код из скрипта

Есть смысл ;) Покажи форму загрузки. Что у тебя в enctype?

Автор: IAmEternaL 9.10.2007, 13:41
должно быть "multipart/form-data"

Автор: armor85 9.10.2007, 14:28
enctype="multipart/form-data" всё стоит.

Автор: IAmEternaL 9.10.2007, 14:36
ну будет сложно тебе помочь, если ты не дашь ни формы аплоада, ни скрипт...

Автор: armor85 9.10.2007, 15:07
Да обычный скрипт, вопрос не “Почему на работает скрипт”, а “ Почему на работает скрипт на IE”. В чём несовместимость, и какие PHP функции не пашут на IE.


Код

$p = pathinfo($name);
if($type=='image/jpeg' && $name!=''){
 $f = uniqid().'.'.strtolower($p['atg']);
  if (move_uploaded_file($tmpn, 'tnp/'.$f)) {
   echo "ok load.\n";
  $_POST['gut'][$k] = $f;
   chmod(realpath('tmp/'.$f), 0644); } else { echo "err!\n"; }

Автор: teroni 9.10.2007, 15:35
Какой-то стрёмный скриптик...

'tnp/'.$f и 'tmp/'.$f - это так и задумано?

Код

$p = pathinfo($name);
.... $p['atg'] 

это что за элемент массива? Функция pathinfo() такого не выдаёт!

Автор: armor85 9.10.2007, 15:45
sorry atg=extension!
я так писал, вкратце, без лишнего, вот и ошибся! 

Автор: dsCode 9.10.2007, 16:33
armor85, на каком месте падает? Что выводит print_r($_FILES)? Отрабатывает ли move_uploaded_file? Файлы совсем не загружаются через IE или загружаются битыми?

Автор: IAmEternaL 9.10.2007, 16:41
тока шо проверил... ие кажеца отсылает не image/jpeg, а image/pjpeg... ну я не уверен - попробуй добавить проверку на этот тип тоже, как разрешенный
типа
Код

if(($type=='image/jpeg' || $type=='image/pjpeg') && $name!=''){

ваапче советую заюзать fiddler и посмотреть шо там ходит между сервом и твоим браузером

кстати - ты бы хоть сказал на каком этапе оно обламывается? ну типа после каждой проверки делай die и ищи где последний проходит, а то не понятно какой участок кода думать

Автор: SelenIT 9.10.2007, 17:41
Цитата(IAmEternaL @  9.10.2007,  16:41 Найти цитируемый пост)
ие кажеца отсылает не image/jpeg, а image/pjpeg... 

Наиболее вероятная причина, т.к.
Цитата(http://www.php.net/manual/ru/features.file-upload.php)

$_FILES['userfile']['type']
    Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif". 


Вообще-то вопрос 
Цитата(armor85 @  9.10.2007,  15:07 Найти цитируемый пост)
какие PHP функции не пашут на IE

не имеет смысла, т.к. http://phpfaq.ru/na_tanke. И если в разных браузерах разный результат - очевидно, что различие не в "функциях PHP", а именно в передаваемых данных...

Автор: chin 9.10.2007, 22:31
да, и почему эта тема в разделе "профи"?  smile 

Автор: IAmEternaL 10.10.2007, 08:09
...спросил новичок. smile ты не мог не спросить

armor85! так шо там у тя? что-то помогло?

Автор: armor85 10.10.2007, 10:04
Потестил, действительно IE передаёт тип как image/pjpeg, нужно будет добавить проверку на этот тип тоже. 

IAmEternaL, cпасибо большое! 

Вот мне просто интересно, много ещё таких приколов?

Автор: IAmEternaL 10.10.2007, 10:49
ага, особенно касаемо загрузки файла в ие через https простокол... столько времени убил на борьбу с этим злом ;)

ие вообще весело с этим делом (mime\type) дружит
у него всегда свои заморочки - так же как и у оперы с фаером
но, все решаемо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)