Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Мультизагрузка картинок (https://javascript.ru/forum/misc/72146-multizagruzka-kartinok.html)

laimas 12.01.2018 10:20

Nexus,
можно и файлом передать, но для этого надо обратное - base64 -> Blob. А вот стоит ли это делать вместо добавления нового поля, это уже вопрос философский. )

рони 12.01.2018 10:26

Возможно я вас увёл в сторону, FormData.append все files (не знаю формат) дополнять при каждом change, а не из output.

laimas 12.01.2018 10:29

рони,
можно, но в этом случае нужно решать и вопросы связанные с отказом загружать что-то из ранее выбранного.

Nexus 12.01.2018 10:31

laimas, по-моему это не такой уж и философский вопрос.
Декодирование base64 займет некоторое время, так и нагрузит устройство пользователя.
А плюсы этого деяния весьма сомнительны, т.к. нет никаких трудностей в том, чтобы на сервере обработать файл как post, либо, как вы и написали, просто добавить новое поле, которое избавит от дополнительных манипуляций (это, конечно, если синхронный запрос устраивает).

рони 12.01.2018 10:31

Цитата:

Сообщение от laimas
нужно решать и вопросы связанные с отказом загружать что-то из ранее выбранного

:yes:

рони 12.01.2018 10:33

:write:
https://developer.mozilla.org/ru/doc...ormData/delete

Nexus 12.01.2018 10:33

рони, FormData в памяти устройства же будет храниться?
Т.е. данные будут как в base64 в src preview, так и в объекте FormData единовременно?

laimas 12.01.2018 10:36

Цитата:

Сообщение от Nexus
нет никаких трудностей в том, чтобы на сервере обработать файл как post

Да, это не проблема, но есть одна неприятность в этом. Например, если сервером определено, что макс. размер загружаемого файла не более 2 МБ, то при загрузке файла как base64 это ограничение легко обойти.

laimas 12.01.2018 10:40

рони,
ну так надо связывать каждый отображаемый эскиз в output с данными в FormData. Именовать каждый элемент в наборе уникальным именем, это значит усложнить обработку на сервере. Работать с индексным набором, придется следить что имеется уже (имя поля ввода обязательно должно отражать массив - name[], в противном случае РНР отдаст последний в наборе файл).

Nexus 12.01.2018 10:41

laimas, проверить размер файла перед сохранением все же можно.


Часовой пояс GMT +3, время: 07:52.