Uploaddialog

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#1
Всем привет!
Очередная задача:
Есть необходимость загрузки пачки файлов. Но возникает проблема с IE (он не умеет выбирать несколько файлов)
Пробовал с OpenNTF брать поделки, но как-то не очень :rolleyes: Не нормального контроля процесса загрузки.

Есть мысль реализовать сканер директории на CSJS. Но тут возникает вопрос - как сохранить выбранные файлы в документ?
Вот что-то не доходит до меня ;)
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#3
XPages Multiple File Uploader в 8-ом эксплорере загрузка сразу нескольких файлов у нас работает.
Ну я вроде как написал что с openntf поделки брал. Не понравилось.
Основная претензия - эти поделки сохраняют атачи только после полной загрузки всех файлов на сервер. Ну еще и Flash? который тоже любит отваливаться в самы не подходящий момент.
Т.е. последовательность такая:
1. грузим все на сервер
2. создаем документы

Пробовал. При загрузке 500 файлов бывает вываливается в ошибку и ничего не сохраняет. Т.е. документов я не получаю.
Особенно обидно - когда заливаешь пару гиг и загрузка обрывается на последнем файле...
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#4
не самый лучший способ - использовать http для аплоада (да и дунлоада - тоже)
для секурности - ftps/sftp
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#5
да и ваще за загрузки можно завести форнтэнд (да хоть nginx)
или вот так http://www.openntf.org/internal/home.nsf/p...%20IBM%20Domino
разумеется - это не панацея (в разрезе вопроса) но стоит подумать в этом направлении
 

aameno2

Well-known member
27.01.2009
514
12
#7
Посмотрите на filesendr c openntf, пользуюсь спокойно. Клиенты льют за раз до 6ти гигов.
Была проблема с обрывом закачки из вне, решилась изменением mss
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#8
Остановился на java applet + FTP-Server.
Все вроде бы хорошо, но не совсем :)
Исходный код апплкта в эклипсе работает нормально (на ftp файлы заливаются), а из броузера вываливается в ошибку:
Exception in thread "AWT-EventQueue-2" java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:21" "connect,resolve")
апплет дергаю так:
Код:
<APPLET name="tstapp" code="TestApp.class" width=350 height=200 archive="FileDialog.jar, commons-net-3.2/commons-net-3.2.jar">
</APPLET>
В чем может быть причина?
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#10
секурити манагер ругаецо на соединение с сокетом - надо пермишены "лечить"

Добавлено: может сюда покопать http://stackoverflow.com/questions/4135138...connect-resolve

Добавлено: и вот http://stackoverflow.com/questions/5439568...ontrolexception
Помогло это permission java.security.AllPermission;
Но я так понимаю это надо на всех возможных клиентах прописывать это?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#11
ну яб рассматривал более тонкую настройку пермишенов (в контексте урла и класса)

Добавлено: просто такие пермишены похачат клиента (дыра в секурити)
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#12
ну яб рассматривал более тонкую настройку пермишенов (в контексте урла и класса)

Добавлено: просто такие пермишены похачат клиента (дыра в секурити)
Ну это да... вот сижу рою, но пока ничего не нарыл :)
В общем без пермишенов код валится тут
Код:
ftpClient.connect("localhost", 21);
Может как-то можно программно расширить права?
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#14
На сколько я понял - даже подпись не решит проблем.
Запись в полиси должна быть все равно
 

Zeka

Well-known member
01.09.2009
219
0
#15
NickProstoNick, а ты всё-таки попробуй :)
Когда-то в молодсти игрался с аплетами и насколько помню - пользователю будет выскакивать сообщение типа "Untrusted signature" и если пользователь нажмёт ОК, то всё заработает. Отпиши если попробуешь.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#16
NickProstoNick, а ты всё-таки попробуй :)
Когда-то в молодсти игрался с аплетами и насколько помню - пользователю будет выскакивать сообщение типа "Untrusted signature" и если пользователь нажмёт ОК, то всё заработает. Отпиши если попробуешь.
Ну у меня апплет и так запускается. Тут вопрос в правах доступа :(
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#18
походу интересно - как решается вопрос с авторизацией по ФТП?
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#19
походу интересно - как решается вопрос с авторизацией по ФТП?
Ну написал java апплет, а он это умеет.
И вот собственно для этого и нужны права, потому как по умолчанию внешние соединения запрещены ;)
C++:
private void ftpConnect( String serverName, String user, String pass){ 

System.out.println("Create FTP-Client");
ftpClient = new FTPClient();

System.out.println("Connect to Server " + serverName );

try {
ftpClient.connect( serverName, 21);
ftpClient.login( user, pass );
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#20
ну этож надо еще вводить, дополнительно
аплет по ссылке тоже поддерживает авторизацию (в УРЛ)
но ябы сделал иначе:
-создаем куку после авторизации (или берем саму авторизационную)
-на сервере (фтп) создаем, по ней, временный каталог (пр-ла генерации можно придумать), до отдачи страницы юзеру (серверным кодом)
-в этот каталог и закачиваем файлы
-после загрузки (полной) переносим файлы в "нужное" место, каталог удаляем

т.о. не треб доп. авторизации
каталог создается с правами записи для любого юзера (что и понятно)
в ирархии выше - запись (любому) запрещена (только серверному юзеру)