Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: IE удивил, upload не работает

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Geddar
Отправлено: 27 Июня, 2009 - 17:36:15
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Прога аплоадит изображение на серв. При этом если изображение превышает некий размер (2500*2500 px) то оно под этот размер подгоняется.
Далее накладывается копирайт.
Файл берётся не из директории сайта, а из переданного браузером.
Как оказалась такая схема не работает в IE
В чём проблема, как решить?

Листинг файла upload.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. @$coment=$_POST['com'];
  3. include '../header.php';
  4. log_avt(true);
  5. ?><script>
  6. wait=new Image();
  7. wait.src='../pic/wait.gif';
  8. function goto (a) {
  9. imgWin=open(a);}
  10. </script>
  11. <p align="center">
  12. <table  cellpadding="0" cellspacing="0" width="70%">
  13. <tr><td width="15"><img src="/pic/1u.png"></td>
  14. <td width="100%" style="background-image: url(/pic/r1.png);"></td></tr></table>
  15. <table border="0" background="/pic/pch.gif" width="70%" height="360"><tr>
  16. <?PHP
  17. $prload=false;
  18. $ind=false;
  19. @$file=$_FILES['uploading'];
  20. @$text=$_POST['com'];
  21. $text=substr($text,0,65500);   // Преобразование текста
  22. $text=htmlspecialchars($text,false);
  23. $text=wordwrap($text,90);
  24. $text=str_replace(array("\r\n", "\r", "\n"), "<br>", $text); //----
  25. $type=explode("/",$file['type']);
  26. $size=round($file['size']/1024);
  27. if(!empty($type[1]) and @$_SESSION['prfile']!=$file['name']){
  28. if($type[1]=="jpg" or $type[1]=="jpeg" and $size<3072){
  29. $date=date('ynjGis');
  30. $old=imagecreatefromjpeg($file['tmp_name']);
  31. $max=2500;
  32. $w=imageSX($old);
  33. $h=imageSY($old);
  34. function new_size($w,$h,$max){ //resize
  35. if($w>$h){
  36. if($w>$max){
  37. $w_new=$max;}
  38. else{
  39. $w_new=$w;}
  40. $newh=$h*$w_new/$w;
  41. $h_new=round($newh);}
  42. else{
  43. if($h>$max){
  44. $h_new=$max;}
  45. else{
  46. $h_new=$h;}
  47. $newh=$w*$h_new/$h;
  48. $w_new=round($newh);}
  49. return array('h'=>$h_new,'w'=>$w_new);}
  50. $hw_p=new_size($w,$h,$max*2);
  51. $new_s=imagecreatetruecolor($hw_p['w'], $hw_p['h']);
  52. imagecopyresized($new_s, $old, 0, 0, 0, 0, $hw_p['w'], $hw_p['h'], $w, $h);
  53. $hw=new_size($hw_p['w'],$hw_p['h'],$max);
  54. $new=imagecreatetruecolor($hw['w'], $hw['h']);
  55. imagecopyresampled($new, $new_s, 0, 0, 0, 0, $hw['w'], $hw['h'], $hw_p['w'], $hw_p['h']);
  56. // копирайт
  57. $nak=rand(-3,3);
  58. $color=imageColorAllocate($new,0,0,0);
  59. imageTTFText($new, $hw['h']/30, $nak, 6, $hw['h']-11+$nak, $color, "../font/somora.ttf", "Graffiti-Art");
  60. $color=imageColorAllocate($new,255,255,255);
  61. imageTTFText($new, $hw['h']/30, $nak, 8, $hw['h']-11+$nak, $color, "../font/somora.ttf", "Graffiti-Art");
  62. imageJpeg($new,"images/$date.$type[1]");
  63. $date_load=date('Ymd'); // в БД
  64. mysql_query("INSERT INTO galery (name, user, coment, date) values(
  65. '$date.".$type[1]."', '".$_SESSION['login']."', '".$text."', '$date_load'
  66. )");
  67. echo mysql_error();
  68. $_SESSION['prfile']=$file['name'];
  69. $prload=true;}
  70. }
  71. else{
  72. echo "<td colspan='2'><big><font color='#FF8C00'>Виберете файл</font></big><br><br></td></tr>
  73. <tr><td align='center'><img src='../menu/empty.gif' name='loadimg'></td></tr>
  74. <tr><td><small><b>Формата JPG (JPEG) размером до 3Мбайт</b></small></td></tr>";}
  75. if($prload){
  76. echo "
  77. <td colspan='2'><big><font color='#FF8C00'>Файл успешно загружен на сервер</font></big><br></td></tr><tr>
  78. <tr><td colspan='2' align='center'><img src='../menu/empty.gif' name='loadimg'></td></tr>
  79. <td>Оригинальное имя загруженного файла:", $file['name'],
  80. "<br>Сохранён как: $date.$type[1]
  81. <br>Tип загруженного файла:", $file['type'],
  82. "<br>Размер загруженного файла: $size Kб</td>
  83. <td align='center'><img src='prevu.php?c=$date.$type[1]&max=350' align='top'  onClick='goto(a);'><br></td>";}
  84. ?>
  85. </tr><tr><td>
  86. <form action='upload.php' method='post' enctype='multipart/form-data'  onSubmit="loadimg.src='../pic/wait.gif';">
  87. <input type='file' name='uploading'><br>
  88. <small>Коментарий</small><br>
  89. <textarea type="text" name="com" style="width: 33%; overflow: auto;" rows="2"></textarea><br>
  90. <input type="submit" value="Загрузить"></form>
  91. </td></tr>
  92. </table><table  cellpadding="0" cellspacing="0" width="70%">
  93. <tr><td width="100%" style="background-image: url(/pic/r1.png);"></td>
  94. <td width="15"><img src="/pic/3u.png"></td></tr></table></p>
  95.     </body>
  96. </html>
 
 Top
vitaliy_mad
Отправлено: 27 Июня, 2009 - 17:46:39
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




скорее всего в JavaScript где то синтаксис не понравился смотри ошибки выводимые браузером
 
 Top
JustUserR
Отправлено: 27 Июня, 2009 - 19:06:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Я вообще не наблюдаю ни одной подключенной JS-бибилиотеки
И к слову ИМХО сказать что в IE самый либеральный JS без глюков


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
vitaliy_mad
Отправлено: 27 Июня, 2009 - 19:11:50
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




JustUserR, если все написано по феншую, то да... он работает нормально.... но у него требования к JavaScript отличаються от всех остальных браузеров.... наглядный пример....
<body onLoad='.....'> - не захотел работать в IE хотя в Opere работает нормально. пришлось в конце *.js писать window.onload='....'; только так он понял что я от него хотел.... имено про это я и говорю, что то что нормально работает в другом браузере может не работать в IE.... надо смотреть отчет об ошибках и делать выводы.... а про библиотеки я код не смотрел... уж очень много буковок.... в глазах рябит когда смотрю Радость
 
 Top
Geddar
Отправлено: 28 Июня, 2009 - 11:02:10
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Ко всем файлам подключен jquery, но на этой странице однозначно нет JS ошибки (проверено Firebug), да кода JS на ней нет практически.
Тут как я понял дело в неких особенностях передачи файла IE. К слову сказанное, JustUserR IE вообще весьма "особенный" Радость браузер. Особенно убивает IE6 с его невозможностью прозрачности png, хотя этот формат существовал за 10 лет до выхода этого браузера =)

Есть у кого ещё варианты?

(Отредактировано автором: 28 Июня, 2009 - 13:06:28)

 
 Top
vitaliy_mad
Отправлено: 28 Июня, 2009 - 12:36:23
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




в других браузерах работает?
 
 Top
Geddar
Отправлено: 28 Июня, 2009 - 12:55:23
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




Да в Opera и Mozilla работает. В IE6 не работает Не понял . В сотальных не знаю
 
 Top
vitaliy_mad
Отправлено: 28 Июня, 2009 - 13:00:36
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




тогда я по проежнему думаю, что проблема в JS, открой исходный код HTML и посмотри там то что ожидалось или нет...
 
 Top
Geddar
Отправлено: 28 Июня, 2009 - 13:12:16
Post Id



Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Май 2009  


Помог: 0 раз(а)




http://graffiti-art[dot]ru/galery/upload.php вот линк на сам прогу в работе. К сожалению для заливки требуется авторизация Закатив глазки
Из JS там меню, угловой информер и по прежнему
CODE (text):
скопировать код в буфер обмена
  1.  
  2. wait=new Image();
  3. wait.src='../pic/wait.gif';
  4. function goto (a) {
  5. imgWin=open(a);}
  6.  

(Отредактировано автором: 28 Июня, 2009 - 13:12:55)

 
 Top
JustUserR
Отправлено: 30 Июня, 2009 - 02:03:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Geddar ИМХО Вообще странно что в Опере тога работает потому что JS из ряда вон выходящий как раз в файрфоксе а в IE с ним все нормально
Собственно при запуске выдается ведь конкретная ошибка? Что если ткнуть на оранжевый восклицательный щнак в нижнем левом углу IE? Скорее всего будет надписть "Этот объект не поддерживает то свойсво или метод" что говорит о кривизке исходного кода
Наверняка там в обработки собыий намудроствовали - можете дать взглянуть исходник


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Alisandres
Отправлено: 21 Июля, 2010 - 20:11:55
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




Столкнулся с такой же глюкой, все дело оказалось в том что IE некорректно передает тип файла и код:
PHP:
скопировать код в буфер обмена
  1. f($type[1]=="jpg" or $type[1]=="jpeg"...
просто не срабатывал.
Лекарство в "изменении" проверяемых типов файлов:
PHP:
скопировать код в буфер обмена
  1. $_FILES['userfile']['type']...
  2. "image/x-png"
  3. "image/pjpeg"
  4. "image/jpeg"
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB