2013-03-01 12 views
7

Postać w HTML jest jakJak uzyskać pliki z HttpServletRequest w serwletu Java

... 
<form method="post" action="/foobar"> 
    <input type="file" name="attachment" /> 
    <input type="text" name="foo" /> 
    ... other input fields 
</form> 

A Servlet będzie jak

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    String attachment = request.getParameter("attachement"); 
    String foo = request.getParameter("foo"); 
    // get other parameters from the request 
    // and get the attachment file 
} 

I zastanawiam

  1. Czy są jakieś sposoby, które nie używają bibliotek innych firm do pobierania plików z obiektu HttpServletRequest?

  2. Co zwraca request.getParameter("attachement")? Czy to nazwa pliku czy coś innego?

  3. Czy wejście binarne będzie automatycznie przechowywane przez kontener internetowy w systemie plików lub tylko w pamięci?

+3

Tutaj możesz: http://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp -servlet/2424824 # 2424824 –

+0

Możesz również rzucić okiem na http://stackoverflow.com/questions/3831680/httpservletrequest-get-post-data przetwarza dane JSON. Jeśli załącznik jest reprezentowany przez adres URL, do pobrania danych konieczne będzie połączenie HTTPURLConnection. –

Odpowiedz

1

Przed przystąpieniem do działania formularza należy wpisać "POST" i enctype = "multipart/form-data".

które powiedziało ... abyś mógł pobrać plik, musisz sam przygotować to żądanie.

należy sprawdzić:

Multipart requests/responses java

0

dodać w formularzu enctype = "multipart/form-data"

<form name="formname" action="servletName" method="post" enctype="multipart/form-data"> 
<input type="file" name="attachment" /> 
    <input type="text" name="foo" /> 
    ... other input fields 
</form> 

teraz po przesłaniu formularza po stronie kontrolera ciebie może uzyskać zdjęcie:

String picture = (request.getParameter("attachment")).getBytes(); 

Założę, że plik jest obrazem, możesz przekazać dowolny plik

+2

Nie należy odbierać pliku w tablicy bajtów zamiast ciągu. W każdym razie jej nawet nie skompiluje. Może być literówka z twojego końca. – Manpreet

Powiązane problemy