Проблема с загрузкой Firefox

Я создал сценарий загрузки в php, который берет файл, изменяет его размер и создает обрезанный квадрат миниатюры. Сам скрипт работает нормально.

Однако, когда я пытался загрузить изображение через Firefox, при нажатии кнопки отправки браузер показывает анимацию загрузки, но он никогда не вызывает сценарий, он просто остается на текущей странице. Если вы не загружаете изображение, тогда скрипт можно найти и запустить.

Я пробовал в сафари, и у меня нет той же проблемы, я могу загрузить изображение из формы, оно обработает его и вернет мне правильную страницу.

Я устал, просто называя базовый скрипт из формы, он просто распечатывает $ _POST и $ _FILES, и я получаю тот же результат, если изображение присутствует, оно не попадет в скрипт, если изображение отсутствует настоящий, он отлично работает.

Мне просто интересно, знает ли кто-нибудь, что происходит?

= Обновление =

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

На данный момент я заметил, что могу успешно загрузить после того, как я очистил свой кеш Firefox, но я могу загрузить только одно изображение, а затем, когда я пытаюсь загрузить другое, я не могу, он просто сбрасывает соединение после «Загрузка». .." немного.

Кроме того, я заметил, что несколько раз могу Ctrl + F5 и получить другую загрузку.

Хотя есть способы обойти это, я не хочу иметь форму, которая требует, чтобы пользователи очищали файлы cookie или обновлялись каждый раз, когда им нужно было загружать. И, как я уже упоминал ранее, эта ошибка не возникает в IE / Opera / Safari / Chrome.

Похоже, что Firefox что-то хранит, я не уверен, что. Любая помощь будет с благодарностью оценена.

Если это помогает, это код, который я использую.

Форма HTML

<form enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"> <label for="file">Choose a file to upload</label> <input id="file" name="file" type="file" /><br /> <input type="submit" value="Upload File" name="submit" /> 

И PHP:

 if (isset($_POST['submit'])) { echo "Processing...<br/>"; if (isset($_FILES['file']['name'])) { $file_array = $_FILES['file']; echo "Uploading..."; upload File($file_array); echo "...Done"; } } 

Эхо меня интересует, что происходит. Если ни один из них на самом деле не выводится. Поэтому по какой-то причине форма не представляется. Вот почему он не добирается до скрипта. Я даже не знаю, почему. У меня нет CSS или ошибок JavaScript.

== Обновление ==

Хорошо, я пробовал еще кое-что и не везет, все HTML, CSS и JavaScript действительны. Я сделал Сброс IIS, я воссоздал свой профиль Firefox. И еще теперь удача.

Я тестировал его снова, и на этот раз я остановил его в середине загрузки (до того, как соединение было сброшено), а затем попытался перейти на другую страницу веб-сайта, и замораживание продолжалось, но все равно скажет: «Загрузка. . "и" Ожидание локального хоста … ". Не совсем уверен, что с этим делать, это некоторые настройки, которые у меня есть? Но тогда почему это не влияет на другие браузеры?

== Обновление ==

Как я упоминал ниже, похоже, что AVG Linkscanner / Active surf shield, похоже, вызывает эту проблему, и есть много сообщений о других проблемах с подобными проблемами. Я обновил AVG Free v9.0.733 до версии 9.0.790, и у меня STILL такая же проблема. Я собираюсь просматривать форумы поддержки AVG и, возможно, публиковать что-то там, так как это похоже на проблему с AVG.

Если у кого-то есть более глубокое понимание, напишите ниже. Это очень ценится 🙂

Ладно, я кое-что с этим пойму, вы можете подумать, что это всего лишь глупая ошибка, но продолжайте читать.

Если у меня нет тегов <html> <body> .. etc и просто …

 <form enctype="multipart/form-data" action="up.php" method="POST"> <label for="file">Choose a file to upload</label> <input id="file" name="file" type="file" /><br /> <input type="submit" value="Upload File" name="submit" /> </form> 

Затем я получаю эту проблему, где firefox будет зависать, при отправке формы.

Если у меня есть правильные теги, например ..

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title></title> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body > <form enctype="multipart/form-data" action="up.php" method="POST"> <label for="file">Choose a file to upload</label> <input id="file" name="file" type="file" /><br /> <input type="submit" value="Upload File" name="submit" /> </form> </body> </html> 

Тогда кажется, что это работает. Теперь это выглядит просто, но я строю свои страницы динамически, поэтому у меня есть только один файл, содержащий только код формы, который входит в эту страницу.

То, насколько я получил, хотя и имеет код формы в отдельном файле, не имеет никакого значения, поскольку все его объединяет серверная сторона.

Иногда относительные пути воспринимаются по-разному разными браузерами, но не настолько уверенными, но пытаются указать текущий каталог путем префикса пути с ./ , например:

 $target_path = "./public/photos/"; 

Остальная часть кода выглядит хорошо для меня.

На всякий случай, когда вы используете последнюю версию FF 3.6, я испытываю точно такую ​​же проблему. Любая форма, загружающая большой файл (1 МБ, которого достаточно), похоже, блокирует загрузку FF. В IE7 / Safari / Opera это работает.

Затем, когда вы щелкните правой кнопкой мыши в FF и просмотрите исходный код, он должен выглядеть точно так же, как в вашем коде выше (ниже «Если у меня есть правильные теги, например …»).

Из спецификации xhtml 1.0

HTML 4 определил атрибут имени для элементов a, апплета, формы, фрейма, iframe, img и map. В HTML 4 также введен атрибут id. Оба этих атрибута предназначены для использования в качестве идентификаторов фрагментов.

В XML идентификаторы фрагментов имеют идентификатор типа, и для каждого элемента может быть только один атрибут идентификатора типа. Поэтому в XHTML 1.0 атрибут id определяется как идентификатор типа. Чтобы документы XHTML 1.0 были хорошо структурированными XML-документами, документы XHTML 1.0 ДОЛЖНЫ использовать атрибут id при определении идентификаторов фрагментов над перечисленными выше элементами.

Возможно, добавление id в form может решить вашу проблему.

Возможно, что-то не так с if (isset($_POST['submit'])) { и переменная $_POST['submit'] не включена FireFox?

 <pre> <?PHP print_r($_POST); ?> </pre> 

Это не поможет вам, но у меня ТОЧНО та же проблема. Я даже переустановил FF, очистил кеш, разделил код прямо вниз (до очень простой формы без проверки и со всем удаленным PHP – как при загрузке, так и в ответном сообщении). У меня проблема в FF 3.6.13 и протестирована против текущих версий Safari (win), Chrome, Opera и IE, где код работает отлично. Мой код проверяется как строгий XHTML, и все вышеперечисленные предложения уже есть … что больше я использую на своем локальном (на том же компьютере) веб-сайте.

МНОГО спасибо за то, что указали мне на сканер AVG Link … отключение его устраняет проблему, но это все еще оставляет мне возможность думать, что у FF есть ошибка, так как «все» другие браузеры хорошо играют с сканером AVG Link.