Кажется действительно простой вещью, но не может понять это. Я использовал onchange событие на элементе, и это работает хорошо. После того как пользователь просматривает и выбирает файл, я получаю путь и загружаю его с помощью моей пользовательской функции js.
Проблема, это не работает, если пользователь выбирает тот же файл дважды подряд, onchange не стреляет (который имеет смысл, так как ничто измененное), но в моем случае, для меня важно получить то событие также, получите путь и загрузку.
(Подобный Очистке <входной тип ='file'/> использование jQuery, не уверенного, если я должен разрешить это как дубликат),
Вы можете просто удалить вход и создать идентичный с JavaScript - новый будет пустой.
(отредактированный ответ, чтобы быть прямо к точке, комментарии не имеют значения сейчас)
Это присутствует только в IE? Если это так, это может быть связано с этим вопросом:
Мероприятие jQuery Memble Event On
в сущности
: вам может потребоваться проверка на onclick.
Вы можете получить кнопку «Выбрать файл» очистить содержимое ввода onClick, таким образом, даже даже если они выбирают тот же файл вашего события все еще срабатывает. Конечно, тогда ваш обработчик Onchange должен будет проверить наличие пустых значений, но он, вероятно, должен делать что-то подобное или больше, если он будет использовать это значение для загрузки файла ...
Один из способов:
if (!function_exists('function_name')) {
// the PHP version is not sufficient
}
-121--3509649- В значительной степени это ложится на вас, как разработчик, зная, какие функции вы используете и являются ли они очень новыми и требуют ли новые версии PHP для запуска или нет. Все, что требуется, это одна функция, представленная в более новой версии PHP, чтобы сделать ее только как совместимой с этой версией и более новой.
-121--3509653-На самом деле нет способа исправить это. Если вы добавите какой-либо другой прослушиватель или таймер, вы потенциально выгрузите файл, даже если пользователь не хочет, чтобы он (например, с помощью щелчка). Вы уверены, что отправка того же файла не может быть выполнена другим способом? Как насчет очистки ввода после начала загрузки (или замены его новым вводом, если его не удается очистить).