Загрузка и превью изображений без перезагрузки страницы?

Сделал всё, как описано тут



Работает, фото отображаются. Однако, если фоток несколько, то приходится каждый input оборачивать в отдельную форму, т.к иначе при submit'е формы отправляется сначала одно фото, потом два фото, потом три фото и т.д. При оборачивании каждого фото в отдельную форму каждый раз отправляется только одно фото, что, собственно, и правильно.



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



Вопрос — что делать в такой ситуации?
  • Вопрос задан
  • 16929 просмотров
Пригласить эксперта
Ответы на вопрос 2
@FedLab
может подойдет еще blueimp.github.com/jQuery-File-Upload/
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
kellishaver.tumblr.com/post/21428272282/using-the-file-api-to-preview-images-before-uploading + github.com/Jahdrien/FileReader для старых браузеров. Это если делать все не задействуя сервер вообще, только на клиенте.

Для вашей же беды… не вижу ничего сложного в том, что бы все инпуты были в одной форме.
<form method="POST" enctype=multipart/form-data" action="backend.php">
    <input type="file" name="preview[]" />
    <input type="file" name="preview[]" />
    <input type="file" name="preview[]" />
</form>


Скажем… при нажатии на кнопку attach добавляйте в скрытую форму еще один инпут и ссылайтесь уже на новое поле. И т.д. и т.д. Хотя поидее если вам нужно сразу после выбора файла отображать данные, то опять же проблемы с тем что одна картинка на запрос не будет.

Что-то в этом духе. Вообще мультиаплоадеров много, которые работают и в старых браузерах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы