Не теряйте значение input type = «file» после перезагрузки страницы [duplicate]

0

У меня проблема с формой на моем сайте. Форма содержит некоторые текстовые входы и вход для загрузки файлов. Когда некоторые текстовые поля заполнены неправильно, возникает ошибка, и страница перезагружается. Но: если я выберу файл, не заполняйте другие файлы правильно, а страница перезагружается, я должен снова выбрать файл, он не сохраняется в форме.

Может ли кто-нибудь помочь мне, пожалуйста?

  • 0
    Вы должны просто выполнить проверку на стороне клиента перед отправкой формы (в дополнение к проверке на стороне сервера, которая является обязательной), чтобы минимизировать вероятность того, что пользователь отправит недопустимые данные и должен будет повторно заполнить форму.
Теги:
forms
file-upload

1 ответ

2

По соображениям безопасности вы не можете установить значение ввода файла на любом клиенте или сервере.

Я могу думать об этих возможностях:

  1. Это сообщение предоставляет один метод решения на стороне сервера, включающий в себя идентификацию на странице, которая ссылается на ранее загруженные файлы, а не на фактические входные файлы (поскольку файлы, вероятно, уже загружены).

  2. Многие сайты, которые принимают файлы, загружают их в несколько разную форму. Загрузка файлов завершена, а затем остальная часть формы заполняется и отправляется с сервером, поддерживающим ссылочное соединение между ранее загруженными файлами и текущим действием, которое будет отправлено на сервер. Популярное программное обеспечение форума vBulletin работает таким образом для вложений в сообщения. Вложения загружаются в отдельной форме/пользовательском интерфейсе.

  3. Вы можете отправить свою форму через ajax, а не как отправку формы. Поскольку вызов ajax не изменяет текущую страницу, если вы получаете ошибки из представления через ajax, тогда текущая страница и выбранные входные файлы остаются. Вы можете добавить свои отчеты об ошибках на текущую страницу с помощью javascript и показать пользователям такую ошибку.

  4. Вы также можете избежать большей части этой проблемы (подумали не все), выполнив как можно большую проверку на стороне клиента с помощью javascript перед отправкой формы, чтобы уменьшить возможности сервера, когда-либо отклоняющие представление формы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню