Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Загрузить файлы в папку проекта / 12 сообщений из 12, страница 1 из 1
24.08.2015, 18:08
    #39035085
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
Есть форма загрузки файла:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<h3>File Upload:</h3>
Select a file to upload: 

<form action="UploadServlet" method="post"
	  enctype="multipart/form-data">
	<input type="file" name="file" size="50" />
	

	<input type="submit" value="Upload File" />
</form>




Есть сервлет:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
import java.io.*;
import java.util.*;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.output.*;

public class UploadServlet extends HttpServlet {

    private boolean isMultipart;
    private String filePath;
    private int maxFileSize = 1000 * 1024;
    private int maxMemSize = 100 * 1024;
    private File file ;

    public void init( ){
        // Get the file location where it would be stored.
        filePath =
                getServletContext().getInitParameter("file-upload");
    }
    public void doPost(HttpServletRequest request,
                       HttpServletResponse response)
            throws ServletException, java.io.IOException {
        // Check that we have a file upload request
        isMultipart = ServletFileUpload.isMultipartContent(request);
        response.setContentType("text/html");
        java.io.PrintWriter out = response.getWriter( );
        if( !isMultipart ){
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet upload</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<p>No file uploaded</p>");
            out.println("</body>");
            out.println("</html>");
            return;
        }
        DiskFileItemFactory factory = new DiskFileItemFactory();
        // maximum size that will be stored in memory
        factory.setSizeThreshold(maxMemSize);
        // Location to save data that is larger than maxMemSize.
        factory.setRepository(new File("c:\\temp"));

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);
        // maximum file size to be uploaded.
        upload.setSizeMax( maxFileSize );

        try{
            // Parse the request to get file items.
            List fileItems = upload.parseRequest(request);

            // Process the uploaded file items
            Iterator i = fileItems.iterator();

            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet upload</title>");
            out.println("</head>");
            out.println("<body>");
            while ( i.hasNext () )
            {
                FileItem fi = (FileItem)i.next();
                if ( !fi.isFormField () )
                {
                    // Get the uploaded file parameters
                    String fieldName = fi.getFieldName();
                    String fileName = fi.getName();
                    String contentType = fi.getContentType();
                    boolean isInMemory = fi.isInMemory();
                    long sizeInBytes = fi.getSize();
                    // Write the file
                    if( fileName.lastIndexOf("\\") >= 0 ){
                        file = new File( filePath +
                                fileName.substring( fileName.lastIndexOf("\\"))) ;
                    }else{
                        file = new File( filePath +
                                fileName.substring(fileName.lastIndexOf("\\")+1)) ;
                    }
                    fi.write( file ) ;
                    out.println("Uploaded Filename: " + fileName + "<br>");
                }
            }
            out.println("</body>");
            out.println("</html>");
        }catch(Exception ex) {
            System.out.println(ex);
        }
    }
    public void doGet(HttpServletRequest request,
                      HttpServletResponse response)
            throws ServletException, java.io.IOException {

        throw new ServletException("GET method used with " +
                getClass( ).getName( )+": POST method required.");
    }
}




и настройки в web.xml :


Код: xml
1.
2.
3.
4.
5.
6.
7.
<context-param>
		<description>Location to store uploaded file</description>
		<param-name>file-upload</param-name>
		<param-value>
			/resources/
		</param-value>
	</context-param>




Но файлы грузятся в C:/resources/ .

А мне нужно загрузить их в папку проекта resources ( находится в webapp) .

Возможно ли это как-то сделать?
...
Рейтинг: 0 / 0
24.08.2015, 18:27
    #39035097
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
NNN7А мне нужно загрузить их в папку проекта resources ( находится в webapp) .
уверен что удобно грузить данные в папку веб-сервера?
Сервер может понадобится переустановить\снести\...
...
Рейтинг: 0 / 0
24.08.2015, 19:02
    #39035129
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
Petro123NNN7А мне нужно загрузить их в папку проекта resources ( находится в webapp) .
уверен что удобно грузить данные в папку веб-сервера?
Сервер может понадобится переустановить\снести\...

Не уверен. Но нужен хотя бы такой вариант .

У меня такая ситуация : есть в БД таблица user , в ней поле path . Пользователь загружает картинку и путь к этой картинке записывается в path .

А потом пытаюсь вставить в jsp этот path - и понятно, что ничего не получается.

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

Куда тогда в этом случае грузить картинку?
...
Рейтинг: 0 / 0
24.08.2015, 19:11
    #39035137
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
получается только через полный путь

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
[SRC java]
	<context-param>
		<description>Location to store uploaded file</description>
		<param-name>file-upload</param-name>
		<param-value>
			D:/spring-security-login/src/main/webapp/resources/
		</param-value>
	</context-param>

[/SRC]


а можно ли как-то сделать , что бы без D:/spring-security-login ?
...
Рейтинг: 0 / 0
24.08.2015, 20:30
    #39035168
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
NNN7,
У тебя же загружает на с: диск.
При чтении из бд тоже есть или сделай такой параметр.
Я бд блоб pdf храню.
...
Рейтинг: 0 / 0
24.08.2015, 23:52
    #39035227
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
Petro123NNN7,
У тебя же загружает на с: диск.
При чтении из бд тоже есть или сделай такой параметр.
Я бд блоб pdf храню.

Что-то я ничего не понял. Можно подробнее о БД ?
...
Рейтинг: 0 / 0
25.08.2015, 00:01
    #39035231
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
У меня сейчас картинки загружаются на диск , например , в C:/images . И path получается в виде C:/images/1.png
Но это не совсем то , что нужно .

при выводе на jsp эта картинка конечно не видна.


В бд у меня хранится путь к картинке.

Куда нужно грузить картинку? Вот этот вопрос мне не ясен.
...
Рейтинг: 0 / 0
25.08.2015, 07:35
    #39035271
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
NNN7,
У тебя учебная задача? Тогда снчала показ картинки Любой из images сервера. Рядом есть тема.
А потом туда запись. Ешь слона по частям.
...
Рейтинг: 0 / 0
25.08.2015, 09:29
    #39035321
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
NNN7Куда нужно грузить картинку? Вот этот вопрос мне не ясен.
Можно в настройках сервера прописать пути, так чтобы DefaultServlet возвращал файлы из любой папки, аналогично тому как если бы эти файлы лежали внутри модуля.
Можно завести свой собственный сервлет (а особые извращенцы могут и JSP для этого приспособить), чтобы отдавать содержимое файлов по HTTP.
...
Рейтинг: 0 / 0
25.08.2015, 09:58
    #39035333
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
BlazkowiczNNN7Куда нужно грузить картинку? Вот этот вопрос мне не ясен.
Можно в настройках сервера прописать пути, так чтобы DefaultServlet возвращал файлы из любой папки, аналогично тому как если бы эти файлы лежали внутри модуля.
Можно завести свой собственный сервлет (а особые извращенцы могут и JSP для этого приспособить), чтобы отдавать содержимое файлов по HTTP.



Вот думал на счёт сервлета. Кажется , что это подходящий вариант
...
Рейтинг: 0 / 0
25.08.2015, 10:00
    #39035334
NNN7
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
Petro123NNN7,
У тебя учебная задача? Тогда снчала показ картинки Любой из images сервера. Рядом есть тема.
А потом туда запись. Ешь слона по частям.

Нет , не совсем учебная . Скорее - для себя. Как бы так сказать.. ознакомление с технологиями.
...
Рейтинг: 0 / 0
25.08.2015, 10:48
    #39035371
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузить файлы в папку проекта
NNN7Скорее - для себя
ну дак и делай по шагам. Где скриншот картинки что залил на С:\?
Удачи!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Загрузить файлы в папку проекта / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]