Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Получить доступ к temp Tomcat из Servlet


Автор: 4epT 23.8.2012, 10:04
Всем привет. Реализую upload файлов. Использую Apache Tomcat 7.0.22. Когда выбираю файлы, они автоматически подгружаются в temp директорию томкета, я могу как то получить URL на эту директорию ? Хочу пользователю показать миниатюры (до реальной загрузки).

Можно конечно самостоятельно загружать файлы в temp директорию (свою) и потом показывать ему миниатюры, и если он подтверждает загрузку то копировать в "рабочую" директорию а в случае отказа затерать файлы в своей temp директории, но при таком решении прийдется много копировать ) а если файлы большие, то это накладно.

Автор: Pawl 2.9.2012, 21:36
например, Вы можете в web.xml прописать путь к папке:
Код

    <servlet>
        <servlet-name>...</servlet-name>
        <servlet-class>...</servlet-class>
        <init-param>
            <param-name>path</param-name>
            <param-value>${catalina.home}/temp</param-value>
        </init-param>
        ...
    </servlet>

потом вызвать этот путь в приложении:
Код

String path = servlet.getServletConfig().getInitParameter("path");

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

        for (String name : content) {           
            url = ("<a href=" + "\"/" + path + "/" + name + ">" + name + "</a>");
            pw.println(url);
            pw.println("<p><p>");
        } //end of for  

где content - все файлы в папке; path - путь к файлу в папке tmp + название файла; name - имя соответствующего файла (получаете методом String[] content = new File(path).list()). Ну и еще надо будет давать условие, чтобы не отображать все файлы подряд, а только там jpg или bmp или какую другую графику... Да, и pw - это объект PrintWriter, можно использовать прямо на jsp.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)