Uploaddialog

Тема в разделе "Lotus - Xpages", создана пользователем NickProstoNick, 20 май 2013.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    Очередная задача:
    Есть необходимость загрузки пачки файлов. Но возникает проблема с IE (он не умеет выбирать несколько файлов)
    Пробовал с OpenNTF брать поделки, но как-то не очень :rolleyes: Не нормального контроля процесса загрузки.

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

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    XPages Multiple File Uploader в 8-ом эксплорере загрузка сразу нескольких файлов у нас работает.
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну я вроде как написал что с openntf поделки брал. Не понравилось.
    Основная претензия - эти поделки сохраняют атачи только после полной загрузки всех файлов на сервер. Ну еще и Flash? который тоже любит отваливаться в самы не подходящий момент.
    Т.е. последовательность такая:
    1. грузим все на сервер
    2. создаем документы

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

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    не самый лучший способ - использовать http для аплоада (да и дунлоада - тоже)
    для секурности - ftps/sftp
     
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    да и ваще за загрузки можно завести форнтэнд (да хоть nginx)
    или вот так http://www.openntf.org/internal/home.nsf/p...%20IBM%20Domino
    разумеется - это не панацея (в разрезе вопроса) но стоит подумать в этом направлении
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
  7. aameno2

    aameno2 Well-Known Member

    Регистрация:
    27 янв 2009
    Сообщения:
    484
    Симпатии:
    12
    Посмотрите на filesendr c openntf, пользуюсь спокойно. Клиенты льют за раз до 6ти гигов.
    Была проблема с обрывом закачки из вне, решилась изменением mss
     
  8. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Остановился на java applet + FTP-Server.
    Все вроде бы хорошо, но не совсем :)
    Исходный код апплкта в эклипсе работает нормально (на ftp файлы заливаются), а из броузера вываливается в ошибку:
    апплет дергаю так:
    Код (Text):
    <APPLET name="tstapp" code="TestApp.class" width=350 height=200 archive="FileDialog.jar, commons-net-3.2/commons-net-3.2.jar">
    </APPLET>
    В чем может быть причина?
     
  9. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
  10. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Помогло это permission java.security.AllPermission;
    Но я так понимаю это надо на всех возможных клиентах прописывать это?
     
  11. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    ну яб рассматривал более тонкую настройку пермишенов (в контексте урла и класса)

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

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну это да... вот сижу рою, но пока ничего не нарыл :)
    В общем без пермишенов код валится тут
    Код (Text):
    ftpClient.connect("localhost", 21);
    Может как-то можно программно расширить права?
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
  14. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    На сколько я понял - даже подпись не решит проблем.
    Запись в полиси должна быть все равно
     
  15. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    NickProstoNick, а ты всё-таки попробуй :)
    Когда-то в молодсти игрался с аплетами и насколько помню - пользователю будет выскакивать сообщение типа "Untrusted signature" и если пользователь нажмёт ОК, то всё заработает. Отпиши если попробуешь.
     
  16. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну у меня апплет и так запускается. Тут вопрос в правах доступа :(
     
  17. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
  18. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    походу интересно - как решается вопрос с авторизацией по ФТП?
     
  19. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Ну написал 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();
    }

    }
     
  20. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    ну этож надо еще вводить, дополнительно
    аплет по ссылке тоже поддерживает авторизацию (в УРЛ)
    но ябы сделал иначе:
    -создаем куку после авторизации (или берем саму авторизационную)
    -на сервере (фтп) создаем, по ней, временный каталог (пр-ла генерации можно придумать), до отдачи страницы юзеру (серверным кодом)
    -в этот каталог и закачиваем файлы
    -после загрузки (полной) переносим файлы в "нужное" место, каталог удаляем

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

Поделиться этой страницей