|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии JS Input File - сохранение файлов-изображений в массив (Нужна помощь в написании скрипта.) |
JS Input File - сохранение файлов-изображений в массив |
Здравствуйте. Нужна Ваша помощь с JavaScript'ом.
На странице добавления материала имеется форма для загрузки множества изображений <input type="file" multiple="true" />. Пользователь загружает изображения не все сразу, а по несколько файлов, сортирует их визуально (jQuery UI sortable) и отправляет на сервер через AJAX. Во время визуальной сортировки изображений осуществляется сортировка массива ссылками на файлы. Файлы на сервер отправляются вместе со всеми другими данными форм как объект FormData. Все данные, кроме файлов-изображений, отлично сохраняются на сервере. Все дело в том, что после загрузки новой порции изображений, ссылки на ранее загруженные файлы исчезают во всех современных браузерах, кроме 12 Оперы (баг Оперы, насколько я понял). Вопрос: Как сохранить в массив не ссылку на файл-изображение ( files[0] ), а сам файл для дальнейшей его загрузки на сервер. Пример скрипта jsfiddle.net (здесь, на форуме, просматривать код скрипта попросту неудобно - нет подсветки синтаксиса и отступов). Для тех кто знает о чем идет речь и может помочь разобраться, взгляните на закомментированную строку № 22. Будет ли это работать? Потратил много времени на решение этой задачи, но решить пока не удалось. Проверить вариант с 22 строкой сейчас физически не могу, да и не факт что это заработает. Можно попробовать конвертировать [object File] в [object Blob] и последний сохранить в массив, но как это сделать я не знаю. Заранее спасибо за любую помощь. PS. Ответы с сообщениями "решить эту задачу на ucoz'е невозможно" просьба не писать. Не можете ничем помочь — не пишите ничего. |
|
Данную задачу, если кому интересно, я все таки решил, но не совсем так, как хотел изначально.
Ссылки на файлы, как известно, можно получить только после того, как пользователь выберет их у себя на компьютере, то есть после события onchange. Изначально я пытался сохранить не ссылку на выбранный файл, а сам файл в массив и после этого очистить форму выбора файлов для загрузки, но это сделать мне таки и не удалось, хотя я более чем уверен, что это сделать возможно. Так как тратить больше времени на решение этой задачи я не был намерен, я поступил следующим образом. После выбора одного или нескольких файлов, события onchange, происходит сохранение всех необходимых ссылок на файлы в массив. После этого скрывается последняя активная форма <input type="file" multiple="true" /> и одновременно добавляется такая же для загрузки новых файлов. Пользователь всегда видит только одну форму для выбора файлов, хотя на самом деле их может быть неограниченное количество. Ответ на свой первоначальный вопрос я все таки хотел бы получить, но если тема никому не интересна, то ее можно закрыть. JacksonMihailov, загрузить на сервер, на данный момент, можно до 50 изображений для каждого материала (ранее было всего 30). |
superuser_0, Изображения да. Я думал о любых файлах, но все же спасибо... Может переберу скрипт, посмотрю. Спасибо за идею и информацию ))
Тема интересная, только вряд ли у кого то тут хватит знаний(или не будет лень) на ваш вопрос ответить. jmDB - Текстовая база данных для uCoz
|
| |||
| |||
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!