Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка множества файлов через форму, нужно облегчить работу с готовым сайтом 
:(
    Опции темы
Nikius
  Дата 15.7.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



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

Была поставлена следующая задача:
Человеку хочется добавить таким макаром тысячу файлов и кликать каждый раз на кнопку, что добавляет инпут, а затем на кнопку "обзор" слишком долго. Он хочет как в винде: нажать "обзор", выбрать все нужные файлы, нажать "открыть", нажать "отправить".
Не обязательно делать именно так, главное, чтобы не приходилось для выбора каждого файла открывать свое диалоговое окно.

При этом редактировать сам сайт возможности нет. 

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

Да, вот тот кусок кода, который отвечает за форму добавления:
Код

<form action="" method="POST" enctype="multipart/form-data">

    <table cellpadding="1" cellspacing="0" id="file_fields">
       <tr>
             <td><input type="file" name="photos[]"></td>
           </tr>
       </table>
       
       <a href="" id="add_file_field">Добавить еще фото</a>
       <input type="submit" value="Сохранить" />
</form>


PM MAIL WWW ICQ   Вверх
IDVsbruck
Дата 15.7.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Чтобы "не приходилось для выбора каждого файла открывать свое диалоговое окно" - только флеш, посредством js этого не сделать.
PM MAIL   Вверх
Nikius
Дата 15.7.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



Так проблема в том, что доступ к самому сайту на уровне пользователя. Туда флеш никак не впилить.

Заказчик утверждает, что у него уже есть подобная программа, которая все это делает, но у нее непонятное ограничение - добавлять можно от 50 файлов за раз. Если меньше то не работает.

Посмотреть я на эту прогу не могу, так как заказчик уперся и хочет посмотреть справлюсь ли я сам.

Это сообщение отредактировал(а) Nikius - 15.7.2009, 15:31
PM MAIL WWW ICQ   Вверх
ksnk
Дата 15.7.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Nikius, Скорее всего "подобная программа" - это какая-нибудь программа, которая эмулирует броузер, загружает на сайт файлы прямым post запросом. Выбирать более любимую систему программирования и писать броузерозаменитель из предложенных разработчиками примеров. Получится что-то вроде "удаленной админки"...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nikius
Дата 15.7.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



Ясно. Спасибо за совет.
PM MAIL WWW ICQ   Вверх
solenko
Дата 15.7.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



ksnk, ну зачем же так жестоко -- десктопное приложение? )

Nikius, погуглите загрузчики на флеше -- они делают как раз то, что вам нужно


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Nikius
Дата 15.7.2009, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



На флеш - это не совсем то, что хотелось бы.

У меня была такая идея: написать код на JS и запустить его используя адресную строку браузера. Сам код откроет дочернее окно в, котором я выведу список файлов. Из них выбираются те, которые надо загружать и жмется ОК. Используя полученный список файлов JS штампует нужное количество инпутов. Потом останется только нажать submit и файлы начнут грузиться.

Пока это только идея. Начал писать и тут возник затык с присваиванием инпуту нужного значения. Пишу к примеру:
Код

<form action="" method="post">
<input id="f1" type="file">
</form>
<script>
document.getElementById('f1').value="Z:\home\localhost\www\z.php";
</script>


И никакого эффекта. Value объекта f1 не изменяется. Мож тут как-то по-другому делать надо?

Это сообщение отредактировал(а) Nikius - 15.7.2009, 22:11
PM MAIL WWW ICQ   Вверх
ksnk
Дата 15.7.2009, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



solenko
Цитата(Nikius @  15.7.2009,  15:18 Найти цитируемый пост)
что доступ к самому сайту на уровне пользователя. Туда флеш никак не впилить.

Случай клинический smile ftp нет, полезных ископаемых - нет, живут роботы...  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nikius
Дата 15.7.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



Ничего не могу с этим поделать. Тут либо я делаю эту фигню, либо меня признают хреновым программером и не хотят работать со мной.  smile 
PM MAIL WWW ICQ   Вверх
bars80080
Дата 15.7.2009, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



Цитата(Nikius @  15.7.2009,  22:04 Найти цитируемый пост)
И никакого эффекта. Value объекта f1 не изменяется

какая неприятность, а то что это специально сделали, чтобы шаловливые ручки прогеров не лазили по компам пользователей, не догадываешься?

javascript здесь тебе не помощник, только если в расширении ActiveX для ИЕ. с ним ты ещё сможешь сварить такой комплекс
PM MAIL WWW   Вверх
Nikius
Дата 15.7.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



Об этом ни где явно не сказано, так что по умолчанию я считал, что все работает. 
А ActiveX сможет в автоматическом режиме присвоить инпуту нужное значение? Или чем он поможет?
PM MAIL WWW ICQ   Вверх
ksnk
Дата 16.7.2009, 01:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(bars80080 @  15.7.2009,  22:55 Найти цитируемый пост)
 расширении ActiveX для ИЕ

Страничка не его. Доступа к файлам нету. Никакого smile 

Таких клиентов надо гнать. Такие задачи не надо решать, так как они не имеют решения, которое можно и нужно использовать в Web программировании. "Удаленная админка" - это скорее извращение, чем нормальная практика администрирования сайтов (imho, конечно)...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 16.7.2009, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



O! Пришла в голову мысль. В FireFox есть механизм вставки дополнительных скриптов на страничку - плагин GeaseMonkey. C его помощью можно кардинально поменять загружаемую страничку, вставить туда все, что угодно, в том числе и флеш. 

Так что как альтернатива писанию приблуды на чуждом Дельфи или Вижуал С, можно написать его на JavaScript. Загрузчик, imho, вполне можно смастерить на JS, тамошний xmlHttp-Реквест может посылать и на разные домены, а вот выбор списка файлов списком пока еще не знаю, вероятно можно только флешем...

Этакая скрипт-админка...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Shabol
Дата 17.7.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.7.2009

Репутация: нет
Всего: нет



Как я удачненько сюда попал....
То что хочет автор - да было бы супер, но в браузере так не сделаешь...
у меня таже задача...
но проблема другая...
есть 
Код

<div id='img_area'></div>

Куда через JavaScript добавляются новые input
Код

 function Add_New_Images() {
    var elem = document.getElementById('img_area');
    if (elem) {
     CountImg=CountImg+1;
     elem.innerHTML = elem.innerHTML + "<input size='40' type='file' id='uf"+CountImg+"' name='uf"+CountImg+"'>";
    }
 }

Проблема в следующем:
Выбрал первый файл... нажал кнопу добавить еще... сработал скрипт выше... строк ввода уже две.. НО уже выбранные значения затираются...
как этого избежать?
PM MAIL   Вверх
Shabol
Дата 17.7.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.7.2009

Репутация: нет
Всего: нет



Вот что значит побыть в обществе умных людей)))))))))
Сам нашел решение:
Код


 function Add_New_Images() {
    var elem = document.getElementById('img_area');
    if (elem) {
     CountImg=CountImg+1;
     var newDiv = document.createElement("div");
     newDiv.innerHTML = "<input size='40' type='file' id='uf"+CountImg+"' name='uf"+CountImg+"'>";
     elem.appendChild(newDiv);
    }
 }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1015 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.