Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   загрузка изображений post (https://javascript.ru/forum/dom-window/75483-zagruzka-izobrazhenijj-post.html)

Menshakovich 14.10.2018 11:39

загрузка изображений post
 
Добрый день,уважаемые форумчане! Подкиньте идей/статей,да и вообще дайте совет,как реализовать.
У меня есть сайт с регистрацией пользователей. Туда же пользователи могут загружать фотографии в input type="file" multiply. Но функционал очень ограниченный. Я не могу удалить, допустим, лишнюю картинку из 5 в input и т.д. Как решить эту проблему?Установить плагин? Но плагины в основном работают с ajax и передают изображения без полей input file. а мне нужно именно это. Что мне делать?(

laimas 14.10.2018 11:56

Цитата:

Сообщение от Menshakovich
передают изображения без полей input file

Даже так?! И кто же им позволяет делать выбор файлов на стороне клиента?

Menshakovich 14.10.2018 13:19

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

Aetae 14.10.2018 13:33

Проблема в том, что input file multiple физически нельзя редактировать. И перемещать меж ними файлы нельзя. И новые создавать с конкретным полученным из js файлом тоже нельзя.
Вот и получается, что "классическим" способом ты ничего не можешь сделать(адекватно). Можно конечно визуально удалять "лишнюю" картинку, посылая на сервер всё равно всё подряд и уже там отсеивая "удалённое", можно добавлять в форму скрытые поля со значением в виде base64 закодированных картинок, которые на сервере раскодировать. Но и то жуткие костыли и оверхед.
С передачей через ajax же таких проблем нет, там ты формируешь запрос как угодно. Потому и все плагины для файлов оперируют ajax.
Так что тут либо тебе переходить всё-таки на ajax(ничего сложного на самом деле), либо мерзко костылять, либо заставлять загружать по одному файлу, без multiple.

Menshakovich 14.10.2018 22:06

Цитата:

Сообщение от Aetae (Сообщение 496253)
Проблема в том, что input file multiple физически нельзя редактировать. И перемещать меж ними файлы нельзя. И новые создавать с конкретным полученным из js файлом тоже нельзя.
Вот и получается, что "классическим" способом ты ничего не можешь сделать(адекватно). Можно конечно визуально удалять "лишнюю" картинку, посылая на сервер всё равно всё подряд и уже там отсеивая "удалённое", можно добавлять в форму скрытые поля со значением в виде base64 закодированных картинок, которые на сервере раскодировать. Но и то жуткие костыли и оверхед.
С передачей через ajax же таких проблем нет, там ты формируешь запрос как угодно. Потому и все плагины для файлов оперируют ajax.
Так что тут либо тебе переходить всё-таки на ajax(ничего сложного на самом деле), либо мерзко костылять, либо заставлять загружать по одному файлу, без multiple.

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

Aetae 14.10.2018 22:52

Цитата:

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

Menshakovich 14.10.2018 23:00

Цитата:

Сообщение от Aetae (Сообщение 496314)
//

я имел в виду сами файлы без кодировок.например,таким образом:
document.getElementById("files").files = event.dataTransfer.files;

Aetae 15.10.2018 08:38

Цитата:

...input file multiple физически нельзя редактировать. И перемещать меж ними файлы нельзя. И новые создавать с конкретным полученным из js файлом тоже нельзя...
//

Alexandroppolus 15.10.2018 13:21

Цитата:

Сообщение от Aetae
base64

FormData же есть

Aetae 15.10.2018 21:15

Alexandroppolus, он хочет без ajax, читай внимательней.


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