2013-07-08 3 views
0

У меня есть форма с вводом данных и файлов. Я хочу отправить все данные вместе с файлом на указанный URL. Если ответ сервера указывает на ошибку, пользователь должен увидеть выделенные поля с ошибками. Для этого я пытаюсь использовать PLUpload. Но я переживаю следующие вопросы:JS, PLUpload: не удалять файл из очереди после загрузки?

  1. Я не могу сделать это сделать не удалить файл из очереди. В случае ошибки пользователь должен будет исправить свой ввод и отправить его снова (возможно, несколько раз).

  2. multipart_data не работает с адаптером html5 (мне нужна поддержка мобильных клиентов, поэтому он должен его использовать). Данные потенциально слишком длинны для передачи в строке запроса.

Любые идеи, как их решить? Или, может быть, другой загрузчик?

P.S. Я не могу «просто использовать iframe», потому что backend - это API, который не может иметь никакого пользовательского интерфейса.

ответ

0

Вы можете сохранить загруженный файл на сервере и включить информацию о загруженном файле в ответ (с ошибками). На стороне клиента: если ответ от сервера содержит информацию о файле - вы должны скрыть поле ввода файла и показать некоторую метку, например: «Загруженный файл: tmp.pdf».

Плюсы:

  • пользователя файл загрузки сразу
  • вам не нужно искать какие-то хаки для файла загружаемым
  • дружественный способ

Минусы:

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

PS. Я не носитель языка, не стесняйтесь исправлять мое сообщение :)

+0

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

+0

Неиспользованные изображения должны быть удалены автоматически, например, через 1 час после загрузки. В php вы можете использовать 'move_uploaded_file' для сохранения загруженного файла и' filemtime', чтобы проверить время загрузки/истечения срока. При необходимости я могу добавить простой пример. –

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