2016-12-16 4 views
4

У меня есть форма, в которой я одновременно отправляю несколько (допустим, 10) файлов на бэкэнд вместе с некоторыми другими регулярными полями ввода.Хранить файлы форм после ошибки проверки

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

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

+0

Потребности много, гораздо больше информации. Этот вопрос не отвечает в текущем формате – Liam

+0

для начала использования технологии бэкэнд? Показать какой-то код или что-то еще? – Liam

+0

Ответ: Загрузите независимо от отправки .... присоедините номер партии к файлам ... тогда, когда проверка не удалась, им не нужно повторно выбирать файлы, поскольку они уже загружаются ... единственная часть, которая нуждается в для исправления является валидацией. приложить тайм-аут к файлам-изгоям ... которые никогда не прошли проверку, которая будет удалена из разрыва после x времени. для соображений безопасности браузера .. вы не сможете достичь того, чего хотите ... это следующая лучшая вещь. Надеюсь, ты будешь следовать тому, что я имею в виду. – Seabizkit

ответ

1

Независимо от того, что вы делаете, вы не можете пропустить проверку на стороне сервера. По соображениям безопасности (например, кто-то отправляет необработанные запросы). Что касается отображения файлов в случае ошибки (или простой перезагрузки), я бы отправил его как Base64, но через AJAX, если файлы большие.

  1. стороны клиента проверка: большинство валидации (если не все) может быть сделана с помощью обычного JS. Будь то размер файла, тип содержимого ... и более конкретные проверки в соответствии с файловыми типами (изображение, документ ...)
  2. Проверка на стороне сервера: После отправки полностью проверьте файл и содержимое.
  3. Послать файлы обратно: В случае возникновения ошибки отправьте файлы с запросом, если они маленькие. Если вы отправите их через AJAX, чтобы избежать блокировки и быстро сохранить время загрузки страницы.

Надеюсь, это поможет!

0

Самое простое, что нужно сделать было бы:

1) Подтвердить все поля на стороне клиента (JavaScript/JQuery)

2) После того, как все остальные входы проверяются, а затем отправлять в файлах.

NB: Если вам необходимо проверить некоторые значения на стороне сервера, используйте ajax для обоих этапов (1) и (2). Также попробуйте дать немного больше информации, чтобы получить ответы на качество.

+0

Выполнение проверки и отправки в двух разных HTTP-вызовах исключает проверку, так как параметры, отправленные во втором запросе, могут отличаться от параметров, отправленных в первом. – Bustikiller

0

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

Раздел формы для загрузки одного файла затем включает также скрытый ввод, содержащий уникальный идентификатор файла.

При обработке запроса: если файл в запросе получает файл (и сохраняет его, если форма недействительна), в противном случае, если файл-идентификатор получает файл из хранилища.

 Смежные вопросы

  • Нет связанных вопросов^_^