[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборочная загрузка файлов на сервер
cln2008
Доброго времени суток.
Есть такая задача - клиент должен передать на сервер несколько файлов.
Перед передачей он должен увидеть список из этих файлов и припомощи чекбокса выделяет те файлы, которые он будет передавать. Количество файлов переменно ..... от 3х до нескольких сотен ...
Подскажите, плз, каким образом можно реализовать такую задачу. Или может уже есть готовые решения ...
Спасибо



Спустя 14 часов, 43 минуты, 5 секунд (4.06.2009 - 13:34) stepan написал(а):
Для того что бы реализовать этот скрипт, тебе понадобится: терпение к обучению и решительность идти до победного конца.
Как загружать на сайт файлы написанно сдесь. После загрузки фала тебе необходимо выводить содержимой папки куда закидываются файлы, тем самым ты получишь список загружанных файлов на против которых будет стаять checkbox. И последняя форма проверки и выполнения действий.

выведение содержимого коталога:
PHP
$dh="/путь к папке/";
$do=opendir($dh);
$i=0;
while(
$file=readdir($do)){
if(
$file=="." || $file==".."){
}else{
echo 
"<input type=\"checkbox\" name=\"file\" value=\"".$file."\">".$file."<br>";
$i++;
}
}
echo 
"<input type=\"submit\" name=\"change\" value=\"Принять\">";

тебе осталось лишь это все обмозговать и слипить в единое целое.

Спустя 36 минут, 21 секунда (4.06.2009 - 14:11) twin написал(а):
Тут по моему что то не то...
Цитата
клиент должен передать на сервер
Перед передачей он должен увидеть список из этих файлов

Либо не так выражена мысль, либо я не понял. Как он увидит список файлов на странице, если они у него в компе?

Спустя 7 минут, 31 секунда (4.06.2009 - 14:18) stepan написал(а):
Цитата (twin @ 4.06.2009 - 11:11)
Либо не так выражена мысль, либо я не понял. Как он увидит список файлов на странице, если они у него в компе?

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

Спустя 1 час, 26 минут, 17 секунд (4.06.2009 - 15:44) glock18 написал(а):
Цитата
Я так понял что он сначало загружает все файлы, потом чекбоксами омечает какие нужны и сортирует т.е. все файлы которые были не отмечены удаляются, а которые отмечены передаются. Только не изветно как передаются или чем передаются или они на месте остаются.


Попахивает серой))). Этак ему надо загрузить на сервак самому сначала
Цитата
Количество файлов переменно ..... от 3х до нескольких сотен ...

подозреваю, что для этого использоваться будет input type=file)))) А уже потом уставший и голодный пользователь наконец поставит галочки у тех двух файлов, которые ему на самом деле нужны из этих 300 biggrin.gif

Спустя 25 минут, 49 секунд (4.06.2009 - 16:10) sergeiss написал(а):
А по-моему, это просто уставшему и голодному прогеру надо понять, что юзер может просто указать те файлы, которые он хочет загрузить. И просто тупо НЕ указывать те, что не нужны.
И из этих файлов уже прогер (кодер) должен сделать массивчик инпутов.

Но это как-то ближе не к ПХП, а к ДжаваСкрипту.

Спустя 43 минуты, 2 секунды (4.06.2009 - 16:53) glock18 написал(а):
sergeiss
Че-т я не понял. Так показалось, что ты понял это. Я правильно понял?))) Может просветишь, а то я не могу вообще задачу к разумной формулировке привести))

Спустя 1 час, 59 минут, 21 секунда (4.06.2009 - 18:53) cln2008 написал(а):
Спасибо всем. Мое решение было таким
1. файлы загружаются на сервер, попадают в какой-то промежуточный каталог
2. пользователь потверждает файлы
3. неотмеченные файлы удаляются на серваке и отмеченные идут дальше в обработку
Может задача и не совсем корректно озвучена но ситуация когда загружает 300 файлов а потом выбирает из них 2-3 сомневаюсь что кто-то до такого додумается ....
а вопрос был с целью выяснить - может есть механизм когда пользователь выбирает файлы не загружая их на сервак .... Но коль такого нет, то пусть сам думает что грузить ...

Спустя 40 минут, 47 секунд (4.06.2009 - 19:33) FatCat написал(а):
Цитата (cln2008 @ 4.06.2009 - 19:53)
может есть механизм когда пользователь выбирает файлы не загружая их на сервак .... Но коль такого нет, то пусть сам думает что грузить ...

Видел такое на флеши. Например тут такое реализовано: http://imagevenue.com/
Наверное можно попробовать сдернуть их флешь и поковырять...

Спустя 8 минут, 13 секунд (4.06.2009 - 19:42) sergeiss написал(а):
Цитата (cln2008 @ 4.06.2009 - 19:53)
1. файлы загружаются на сервер, попадают в какой-то промежуточный каталог
2. пользователь потверждает файлы
3. неотмеченные файлы удаляются на серваке и отмеченные идут дальше в обработку

Автор жжёт "не по деЦЦки" blink.gif blink.gif blink.gif ohmy.gif biggrin.gif tongue.gif

Это будет натуральный "китайский кодинг" smile.gif Что это такое? Вот тут http://lurkmore.ru/Быдлокод можно посмотреть. Поиск по слову "китай" wink.gif


Цитата (glock18 @ 4.06.2009 - 17:53)
Че-т я не понял. Так показалось, что ты понял это. Я правильно понял?))) Может просветишь, а то я не могу вообще задачу к разумной формулировке привести))


Вот смотри. Допустим я, как пользователь, хочу загрузить на сервер сколько-то файлов. Здравый юзер, даже если он и "лох ушастый", захочет выбрать нужные файлы у себя на компе, до того, как их загрузит на сервер. Тем более, что это - его трафик! За который он может платить из своего кармана. А некоторые кодеры (программерами назвать сложно) предлагают "удалять гланды через задницу" blink.gif

Как делают в нормальных системах? Сначала указывается первый файл для загрузки (используется input соответствующего типа). Затем, если юзер хочет загрузить еще, то он нажимает специальную кнопочку, и для него формируется новый инпут, где он также может ввести имя файла, уже другого.
Если что-то не нравится - можно заменить имя файла, или вообще удалить этот инпут (по нажатию специальной кнопки).
И вот только тогда, когда пользователь подтвердит отправку всех выбранных файлов, они начнут загружаться. Только те, что выбрал юзер, а не весь его жесткий диск (или один каталог - что не принципиально).

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

glock18 - я ответил на твой вопрос? wink.gif

Спустя 3 часа, 15 минут, 55 секунд (4.06.2009 - 22:57) glock18 написал(а):
sergeiss
нуу, я хотел спросить не как это нормально делается, а что ты понял из этого - описанного выше задания. спасибо за описание, но я никогда и не полагал, что нужно загружать каталог прежде чем файл (о боги!!) загрузить. Какая-то логическая нестыковка получается)))

Цитата

Вот смотри. Допустим я, как пользователь, хочу загрузить на сервер сколько-то файлов. Здравый юзер, даже если он и "лох ушастый", захочет выбрать нужные файлы у себя на компе, до того, как их загрузит на сервер. Тем более, что это - его трафик! За который он может платить из своего кармана. А некоторые кодеры (программерами назвать сложно) предлагают "удалять гланды через задницу" blink.gif

+100

cln2008
Скажи пожалуйста, зачем тебе такой страаанный "алгоритм"?

Спустя 35 минут, 40 секунд (4.06.2009 - 23:33) FatCat написал(а):
Цитата (glock18 @ 4.06.2009 - 23:57)
зачем тебе такой страаанный "алгоритм"?

Если я его правильно понял, алгоритм на самом деле очень полезный и приятный. Посмотри на "имиджавеню" как сделана загрузка группы фотографий, я дал выше ссылку. Чрезвычайно удобно. Во-первых, можно в окошке "моего компьютера" при помощи клавиш контрол и шифт сразу выбрать группу файлов. Во-вторых, можно удалить из числа выбранных лишние.
Все для чайника, все для удобства чайника!

Спустя 7 часов, 39 минут, 45 секунд (5.06.2009 - 07:13) cln2008 написал(а):
Ну наверно надо подробней объяснить ... Это делается для сайта фотопечатающей компании, чтобы пользователь мог передавать по Инету фалы для печати. Средний размер файла фотки я думаю народ знает wink.gif ....
Так вот предпросмотр перед загрузкой хотелось бы для того, чтобы
1. каждому дается определенная квота места на диске ... и если человек перебирает эту квоту, то необходимо чтобы он имел возможность подкорректировать свой заказ и отметить те файлы, которые он хочет отправить на печать в первую очередь
2. вопрос цены за заказ .... если пользователь понавыбирал фалов на сумму больше, чем он расчитывает, то чтобы мог убрать файлы ДО загрузки (когда ходишь по супермаркету и ложишь в корзину товары и вдруг видишь что денег на все не хватит, то не обязательно выкладывать товар не первой необходимости обратно на кассе или звать для этого менеджера)
3. вопрос цены за трафик ... не у всех есть безлимитный канал, поэтому не интересно загрузить фотки на сервер, и потом выбирать что печатать а что нет, если человек столкнулся с тем, что он либо перебрал квоту либо набрал цену за заказ больше чем расчитывал, то к нему и плюсуется еще и цена за трафик
вот основные причины зачем все это надо

Спустя 35 минут, 39 секунд (5.06.2009 - 07:49) glock18 написал(а):
FatCat, cln2008
О как))) Ну спасибо за разъяснение


Спустя 27 минут, 33 секунды (5.06.2009 - 08:16) stepan написал(а):
Цитата (sergeiss @ 4.06.2009 - 16:42)
А некоторые кодеры (программерами назвать сложно) предлагают "удалять гланды через задницу"

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

Спустя 30 минут, 25 секунд (5.06.2009 - 08:46) sergeiss написал(а):
Цитата (stepan @ 5.06.2009 - 09:16)
Если это про меня

Нет, это было сказано про автора темы, про то, как он описал задачу. Вот про это:
Цитата (cln2008 @ 4.06.2009 - 19:53)
1. файлы загружаются на сервер, попадают в какой-то промежуточный каталог
2. пользователь потверждает файлы
3. неотмеченные файлы удаляются на серваке и отмеченные идут дальше в обработку


Автор тему: то, как это задание в итоге описано, ну никак не для ПХП, на мой взгляд. Потому что, ежели это для сайта фотопечатающей компании (ну, и т.д. по тексту), то обработку надо проводить на стороне клиента. А ПХП отвечает за серверную сторону.

На клиентской же стороне - ДжаваСкрипт. Или Джава.

Спустя 9 минут, 46 секунд (5.06.2009 - 08:56) stepan написал(а):
Цитата (sergeiss @ 5.06.2009 - 05:46)
Нет, это было сказано про автора темы, про то, как он описал задачу.

Извини, я просто очень мнительный и тяжек к критики хотя ее очень сильно уважаю.

Спустя 1 час, 13 минут, 33 секунды (5.06.2009 - 10:10) glock18 написал(а):
stepan
Цитата
Извини, я просто очень мнительный и тяжек к критики хотя ее очень сильно уважаю.

Это заметно smile.gif Не принимай все так близко. Никто и не думал тебя обидеть wink.gif

Спустя 1 час, 42 минуты, 3 секунды (5.06.2009 - 11:52) FatCat написал(а):
stepan
Не грузись.
Если больной, придя удалять гланды, сам садится в позу аляваш, любимую проктологами, - за дополнительную плату можно удалить гланды и ректоскопом. laugh.gif

Спустя 3 минуты, 20 секунд (5.06.2009 - 11:55) stepan написал(а):
laugh.gif biggrin.gif laugh.gif

Спустя 5 дней, 23 часа, 3 минуты, 55 секунд (11.06.2009 - 10:59) cln2008 написал(а):
Господа, вот нашел пример, того чего я хочу добиться.
Может подскажет кто начинающему как это можно реализовать ?

Спустя 12 минут, 36 секунд (11.06.2009 - 11:12) sergeiss написал(а):
Цитата (cln2008 @ 11.06.2009 - 11:59)
Господа, вот нашел пример, того чего я хочу добиться.
Может подскажет кто начинающему как это можно реализовать ?

А ты не подумал на тему того, чтобы проявить немного уважения к тем людям, кого спрашиваешь, и кратенько описать, что тебе надо и что там, по ссылке? Или всем надо всё бросить и идти туда разбираться, что же там??? И потом пытаться понять, что же тебе непонятно?

PS. Я в таких ситуациях, когда просто "подскажите, как сделать, как по этой ссылке" никогда не хожу по таким ссылкам. Принципиально smile.gif

Спустя 9 минут, 45 секунд (11.06.2009 - 11:21) cln2008 написал(а):
sergeiss
Это делается для сайта фотопечатающей компании, чтобы пользователь мог передавать по Инету фалы для печати.
В примере интересует как реализована форма для загрузки файлов на сервер

Спустя 1 минута, 2 секунды (11.06.2009 - 11:22) twin написал(а):
А где же там
Цитата
Перед передачей он должен увидеть список из этих файлов и припомощи чекбокса выделяет те файлы, которые он будет передавать.

?
Там обычная динамически создаваемая форма...

Спустя 4 минуты, 51 секунда (11.06.2009 - 11:27) cln2008 написал(а):
twin
ну форма-то не будет один в один как там ... чекбокс я сам добавлю ...
т.е. это называется "динамически создаваемая форма" ?
а где можно почитать про них, желательно с примерами ?

Спустя 4 минуты, 26 секунд (11.06.2009 - 11:32) Kuliev написал(а):
Цитата (cln2008 @ 11.06.2009 - 13:27)
twin
ну форма-то не будет один в один как там ... чекбокс я сам добавлю ...
т.е. это называется "динамически создаваемая форма" ?
а где можно почитать про них, желательно с примерами ?

Спустя 37 минут, 5 секунд (11.06.2009 - 12:09) cln2008 написал(а):
Kuliev
аха, пасиба wink.gif))

Спустя 1 час, 30 минут, 31 секунда (11.06.2009 - 13:39) cln2008 написал(а):
Еще нужна помощь sad.gif(
ниже приведен код, который создает динамическую форму и можно добавить
или удалить строки .... Но при добавлении\удалении, вся информация которая была введена раньше в поля ввода исчезает ....
подскажите, как можно с этим поборотся, ну что чтобы инфа не пропадала из полей ?
HTML
<span id="table">
<table border=0 cellspacing=0 cellpadding=3>
<caption>Сведения о детях</caption>
<tr><td>Имя</td><td>Дата рождения</td><td>
<a href="#" onclick="return addline();">добавить</a></td></tr>
<tr id="newline" nomer="[0]">
<td><input type="text" name="name[0]"></td><td><input type="text" name="date[0]"></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</td></tr></table>
</span>


<script>
var c=0; //счётчик количества строк
function addline()
{
c++; // увеличиваем счётчик строк
s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
re=/(.*)(<tr id=.*>)(<\/table>)/gi;
// это регулярное выражение позволяет выделить последнюю строку таблицы
s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
s2=s1.replace(/\[\d+\]/gi,'['+c+']'); // заменяем все цифры к квадратных скобках
// на номер новой строки
s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
// заменяем аргумент функции rmline на номер новой строки
s=s.replace(re,'$1$2'+s2+'$3');
// создаём HTML-код с добавленным кодом новой строки
document.getElementById('table').innerHTML=s;
// возвращаем результат на место исходной таблицы
return false; // чтобы не происходил переход по ссылке
}
function rmline(q)
{
s=document.getElementById('table').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?newline"? nomer="?\\['+q+'.*?<\\/tr>','gi');
// это регулярное выражение позволяет выделить строку таблицы с заданным номером
s=s.replace(re,'');
// заменяем её на пустое место
document.getElementById('table').innerHTML=s;
return false;
}
</script>

Спустя 1 час, 33 минуты, 7 секунд (11.06.2009 - 15:12) glock18 написал(а):
Не пойму, зачем так форматировать код? Это абсолютно не читаемо.

Я так пишу сюда, если набираю прямо здесь код (таб работает известным образом), и то 2 - 3 строчки. Вы это все сюда тоже вручную переписывали стало быть?

Спустя 49 минут, 36 секунд (11.06.2009 - 16:02) cln2008 написал(а):
glock18
скопировано отсюда
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.