Я не уверен, является ли это источником вашей проблемы, но я бы сделал два предложения, одно для вашего javascript и одно для вашего php:
Для вашего javascript, загрузка должна инициироваться чем-то, кроме статуса изменения этого входа. Я бы ненавидел это, если бы выбрал неправильный файл просто из-за толстых пальцев и необходимости пройти множество шагов, чтобы исправить ошибку перед тем, как повторить попытку. Иметь простой <button>
вход, который запускает Ajax. Также может помочь jquery очистить текст ввода файла после того, как он получит то, что ему нужно. Если ваша проблема, как вы указываете, связана с использованием этого события, это исправит это и множество других потенциальных ошибок, связанных с пользователем.
Кроме того, он открывает дверь, позволяя пользователям выбирать 10 файлов подряд и выполнять пакетную загрузку, вместо того, чтобы выполнять по одному запросу ajax за раз.
Во-вторых, для вашего php ...
Я бы не дал сценарию ответить с полным заголовком и HTML, который добавляет текущую страницу. Это не надежно, с одной стороны; это не типичный способ сделать это, для двоих; и что более важно, это не нужно.
Вместо этого, почему бы jquery не сделать это? Если ваша версия PHP больше 5, у вас есть возможность конвертировать массивы в json, что очень легко обрабатывается jquery. Просто преобразуйте массив информации о ваших изображениях в json, сделайте jquery-де-сериализацию его в объект, а затем вставьте информацию в DOM, где вы хотите, и даже сохраните ее на случай, если потребуется снова обратиться к ней (и, таким образом, избегайте DOM запрос информации, которая, как вы сказали, может быть неправильной).
Надеюсь, это поможет