Kaip įkelti failus į serverį naudojant JSP / Servlet?

Kaip įkelti failus į serverį naudojant JSP / Servlet? Bandžiau:

Tyrinėjant atėjau „ Apache Common FileUpload“ .  Bandžiau: 

 FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = upload.parseRequest(request); // This line is where it died. 

Deja, servletas išskyrė be aiškios žinios ir priežasties. Čia yra stacktrace:

 SEVERE: Servlet.service() for servlet UploadServlet threw exception javax.servlet.ServletException: Servlet execution threw an exception at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:313) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.> 
582
11 марта '10 в 7:07 2010-03-11 07:07 „ Thang Pham“ nustatė „ Kovo 11 d.“, 07:07 2010-03-11 07:07
@ 12 atsakymų

Įvadas

Norėdami peržiūrėti ir pasirinkti įkeliamą <input type="file"> , formoje reikia lauko <input type="file"> HTML <input type="file"> . Kaip nurodyta HTML specifikacijoje , turite naudoti POST metodą, o formos enctype atributas turi būti nustatytas į "multipart/form-data" .

Apache Commons FileUpload . 

Nenaudokite jo ranka!

Teoriškai galite analizuoti užklausos kūną remiantis „ ServletRequest#getInputStream() . Tačiau tai yra tikslus ir varginantis darbas, kuriam reikalingos tikslios RFC2388 žinios. Jūs neturėtumėte pabandyti tai padaryti patys arba kopijuoti kai kurią namų biblioteką be kodo, esančio kitur internete. Daugelis internetinių šaltinių buvo nesėkmingi, pvz., Roseindia.net. Taip pat žr. PDF failo atsisiuntimas . Jūs turite naudoti tikrą biblioteką, kuri buvo panaudota (ir netiesiogiai patikrinta!) Milijonams vartotojų daugelį metų. Ši biblioteka įrodė savo patikimumą.

Jei jau naudojate „Servlet 3.0“ ar naujesnę versiją, naudokite savo API

Jei naudojate bent „Servlet 3.0“ („Tomcat 7“, „Jetty 9“, „JBoss AS 6“, „GlassFish 3“ ir tt), galite naudoti standartinį API HttpServletRequest#getPart() kad HttpServletRequest#getPart() atskirus duomenų elementus su keliomis formomis (Dauguma „Servlet 3.0“ diegimų iš tikrųjų naudoja „Apache Commons FileUpload“ pagal šį dangtelį!). Be to, įprasti formos laukai yra gauti getParameter() įprastu būdu.

Pirmiausia @MultipartConfig servletą @MultipartConfig kad jis galėtų atpažinti ir palaikyti multipart/form-data užklausas ir taip gauti getPart() darbą

 @WebServlet("/upload") @MultipartConfig public class UploadServlet extends HttpServlet { // ... } 

Tada mes ją įgyvendiname „ doPost() taip:

Part#getSubmittedFileName() buvo įvesta Servlet 3.1 (Tomcat 8, 9 min., WildFly 8, GlassFish 4 ir tt).  Jei dar nesate „Servlet 3.1“, jums reikės papildomo naudingumo metodo, kad gautumėte perkeltą failo pavadinimą. 

 private static String getSubmittedFileName(Part part) { for (String cd : part.getHeader("content-disposition").split(";")) { if (cd.trim().startsWith("filename")) { String fileName = cd.substring(cd.indexOf('=') + 1).trim().replace("\"", ""); return fileName.substring(fileName.lastIndexOf('/') + 1).substring(fileName.lastIndexOf('\\') + 1); // MSIE fix. } } return null; } 
 String fileName = getSubmittedFileName(filePart); 

Atkreipkite dėmesį į MSIE nustatymą dėl failo pavadinimo gavimo. Ši naršyklė neteisingai siunčia visą failo kelią pagal pavadinimą, o ne failo pavadinimą.

Jei dar nesinaudojate „Servlet 3.0“, naudokite „Apache Commons FileUpload“.

Jei dar nesate „Servlet 3.0“ (nėra laiko atnaujinti?), Įprasta naudoti „ Apache Commons FileUpload“, norint apdoroti duomenų užklausas daugiaformatės formos forma. Jis turi puikų naudotojo vadovą ir DUK (atidžiai apžiūrėkite abu). Taip pat yra „O'Reilly“ („ cos “) „ MultipartRequest , tačiau jame yra keletas (nedidelių) klaidų ir nėra aktyviai palaikoma daugiau nei metus. Nerekomenduočiau naudoti. „Apache Commons FileUpload“ vis dar aktyviai palaikoma ir šiuo metu yra labai subrendusi.

Jei norite naudoti „Apache Commons FileUpload“, turite turėti bent šiuos failus savo /WEB-INF/lib :

Jūsų pradinis bandymas nepavyko, greičiausiai dėl to, kad pamiršote prieinamumą.

Čia pateikiamas pavyzdys, kaip „ UploadServlet doPost() gali atrodyti naudojant „Apache Commons FileUpload“:

Šiame dienoraštyje galite rasti pavyzdį . 

GlassFish3 getParameter() klaidos getParameter() vis dar grįžta į null

Atkreipkite dėmesį, kad „Glassfish“ versijos, senesnės nei 3.1.2, turėjo klaidą , kai getParameter() vis tiek grąžina null . Jei getPart() šį konteinerį ir negalite ją atnaujinti, reikia išgauti vertę iš getPart() naudodami šį naudingumo metodą:

 private static String getValue(Part part) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(part.getInputStream(), "UTF-8")); StringBuilder value = new StringBuilder(); char[] buffer = new char[1024]; for (int length = 0; (length = reader.read(buffer)) > 0;) { value.append(buffer, 0, length); } return value.toString(); } 
 String description = getValue(request.getPart("description")); // Retrieves <input type="text" name="description"> 

Išsaugokite įkeltą failą (nenaudokite getRealPath() ir part.write() !)

Išsamesnės informacijos apie tai, kaip teisingai saugoti gautą InputStream ( fileContent kintamasis, kaip parodyta pirmiau pateiktuose kodo fragmentuose), ieškokite šiuose atsakymuose disko ar duomenų bazėje:

Įkelto failo aptarnavimas

Jei norite sužinoti, kaip tinkamai išsaugoti išsaugotą failą iš disko ar duomenų bazės, žr. Šiuos atsakymus:

Formos susilpnėjimas

Kaip įkelti naudojant „Ajax“ (ir „jQuery“), žiūrėkite šiuos atsakymus. Atkreipkite dėmesį, kad nereikia keisti formos rinkinio servleto kodo! Galima keisti tik tai, kaip reaguojate, tačiau tai yra gana trivialus (t. Y. Vietoj siuntimo į JSP, tiesiog spausdinkite JSON arba XML ar net paprastą tekstą, priklausomai nuo to, ką scenarijus tikisi paskambinti Ajax).


Tikiuosi, kad tai padės :)

1030
11 марта '10 в 15:27 2010-03-11 15:27 atsakymą pateikė BalusC kovo 11, 10, 15:27 2010-03-11 15:27

Jei naudojate „Spring MVC“, atlikite šiuos veiksmus: (palieku čia, jei kas nors mano, kad tai naudinga).

Naudokite formą su enctype atributo rinkiniu „ multipart/form-data “ (lygiai taip pat, kaip BalusC atsakymas)

 <form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" value="Upload"/> </form> 

Savo valdiklyje MultipartFile file užklausos parametrą į „ MultipartFile taip:

border=0
 @RequestMapping(value = "/upload", method = RequestMethod.POST) public void handleUpload(@RequestParam("file") MultipartFile file) throws IOException { if (!file.isEmpty()) { byte[] bytes = file.getBytes(); // alternatively, file.getInputStream(); // application logic } } 

Failo pavadinimą ir dydį galite gauti naudodami „ MultipartFile getOriginalFilename() ir getSize() .

Aš tai išbandžiau su pavasario versija 4.1.1.RELEASE .

22
26 авг. atsakymas duotas Amilai 26 rug . 2015-08-26 15:39 '15 15:39 2015-08-26 15:39

Jums reikia common-io.1.4.jar failo, kuris bus įtrauktas į jūsų „ lib katalogą, arba jei dirbate bet kuriame redaktoriuje, pvz., „NetBeans“, tada reikia eiti į projekto ypatybes ir tiesiog pridėti JAR failą, ir jūs.

Norėdami gauti common.io.jar failą „ common.io.jar tik„ Google “arba tiesiog eikite į„ Apache Tomcat “ svetainę, kurioje galite nemokamai atsisiųsti šį failą. Tačiau atminkite vieną dalyką: įkelkite dvejetainį ZIP failą, jei esate Windows vartotojas.

11
17 мая '12 в 14:11 2012-05-17 14:11 atsakymas pateikiamas Pranavui gegužės 17 d., 12 val

Aš naudoju reguliarų servletą kiekvienai HTML formai, nesvarbu, ar ji turi priedų, ar ne. Šis servletas grąžina „ TreeMap , kur raktai yra jsp pavadinimas. Parametrai ir reikšmės yra vartotojo įvestys ir išsaugo visus priedus fiksuotame kataloge, tada pervadins pasirinktą katalogą. Čia yra mūsų vartotojo sąsaja su ryšio objektu. Manau, kad tai padės jums.

 public class ServletCommonfunctions extends HttpServlet implements Connections { private static final long serialVersionUID = 1L; public ServletCommonfunctions() {} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {} public SortedMap<String, String> savefilesindirectory( HttpServletRequest request, HttpServletResponse response) throws IOException { // Map<String, String> key_values = Collections.synchronizedMap( new // TreeMap<String, String>()); SortedMap<String, String> key_values = new TreeMap<String, String>(); String dist = null, fact = null; PrintWriter out = response.getWriter(); File file; String filePath = "E:\\FSPATH1\\2KL06CS048\\"; System.out.println("Directory Created ????????????" + new File(filePath).mkdir()); int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; // Verify the content type String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { 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(filePath)); // 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. @SuppressWarnings("unchecked") List<FileItem> fileItems = upload.parseRequest(request); // Process the uploaded file items Iterator<FileItem> i = fileItems.iterator(); while (i.hasNext()) { FileItem fi = (FileItem) i.next(); if (!fi.isFormField()) { // Get the uploaded file parameters String fileName = fi.getName(); // 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); } else { key_values.put(fi.getFieldName(), fi.getString()); } } } catch (Exception ex) { System.out.println(ex); } } return key_values; } } 
8
08 янв. atsakymas duotas jaustis gerai ir programavimas Jan 08 2013-01-08 08:50 '13, 8:50, 2013-01-08 08:50

Pavasario MVC aš daugelį valandų bandžiau tai padaryti ir sugebėjau gauti paprastesnę versiją, kuri veikė formų įvedimui ir duomenims, ir vaizdams.

 <form action="/handleform" method="post" enctype="multipart/form-data"> <input type="text" name="name" /> <input type="text" name="age" /> <input type="file" name="file" /> <input type="submit" /> </form> 

Apdorojimo valdiklis

 @Controller public class FormController { @RequestMapping(value="/handleform",method= RequestMethod.POST) ModelAndView register(@RequestParam String name, @RequestParam int age, @RequestParam MultipartFile file) throws ServletException, IOException { System.out.println(name); System.out.println(age); if(!file.isEmpty()){ byte[] bytes = file.getBytes(); String filename = file.getOriginalFilename(); BufferedOutputStream stream =new BufferedOutputStream(new FileOutputStream(new File("D:/" + filename))); stream.write(bytes); stream.flush(); stream.close(); } return new ModelAndView("index"); } } 

Tikiuosi, kad tai padės :)

6
15 июля '17 в 22:42 2017-07-15 22:42 atsakymą pateikė Shivangi Gupta liepos 17 d. 17 d. 22:42 pm 2017-07-15 22:42

Be Tomcat 6 o 7 komponento ar išorinės bibliotekos

Įkelti atsisiuntimus „ web.xml“ faile :

http://joseluisbz.wordpress.com/2014/01/17/manually-installing-php-tomcat-and-httpd-lounge/#Enabled%20File%20Uploads .

 <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <multipart-config> <max-file-size>3145728</max-file-size> <max-request-size>5242880</max-request-size> </multipart-config> <init-param> <param-name>fork</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>xpoweredBy</param-name> <param-value>false</param-value> </init-param> <load-on-startup>3</load-on-startup> </servlet> 

KAIP PAT ŽR.

  <multipart-config> <max-file-size>3145728</max-file-size> <max-request-size>5242880</max-request-size> </multipart-config> 

Atsisiųskite failus naudodami JSP. Failai:

HTML faile

 <form method="post" enctype="multipart/form-data" name="Form" > <input type="file" name="fFoto" id="fFoto" value="" /></td> <input type="file" name="fResumen" id="fResumen" value=""/> 

JSP arba Servlet faile

  InputStream isFoto = request.getPart("fFoto").getInputStream(); InputStream isResu = request.getPart("fResumen").getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte buf[] = new byte[8192]; int qt = 0; while ((qt = isResu.read(buf)) != -1) { baos.write(buf, 0, qt); } String sResumen = baos.toString(); 

Redaguokite serverio reikalavimus, pvz., Maksimalų failo dydį, maksimalų užklausos dydį ir kitus parametrus, kuriuos galite nustatyti ...

6
25 янв. „ chepe lucho“ atsakymas sausio 25 d 2014-01-25 08:44 '14, 08:44 2014-01-25 08:44

Kitas šios problemos šaltinis kyla, jei naudojate „Geronimo“ su įmontuotu Tomcat. Tokiu atveju, po daugelio commons-io ir commons-fileupload testų iteracijų, problema kyla iš tėvų klasės krautuvo, tvarkančio „commons-xxx“ bankus. Tai turėtų būti užkirstas kelias. Nelaimingas atsitikimas visada įvyko:

 fileItems = uploader.parseRequest(request); 

Atkreipkite dėmesį, kad failų tipų sąrašo tipas pasikeitė su dabartine „Commons-Fileupload“ versija, ty „ List<FileItem> , skirtingai nuo ankstesnių versijų, kur jis buvo bendras List .

Į „Eclipse“ projektą pridėjau „commons-fileupload“ ir „commons-io“ šaltinio kodą, kad galėčiau stebėti faktinę klaidą ir galiausiai supratau. Pirma, sukurta išimtis yra Throwable, o ne nurodyta FileIOException išimtis ar net išimtis (jie nebus sugauti). Antra, klaidos pranešimas yra apgaulingas ta prasme, kad nurodyta klasė nerasta, nes ašis2 neranda bendrų-io. Mano projekte „Axis2“ visai nenaudojama, tačiau kaip standartinio diegimo dalis esama kaip aplankas „Geronimo“ saugyklos pakatalogyje.

Galiausiai radau 1 vietą, kuri sukūrė darbo sprendimą, kuris sėkmingai išsprendė mano problemą. Turite paslėpti bankus iš tėvų krautuvo diegimo plane. Tai buvo patalpinta geronimo-web.xml su mano pilnu failu, pateiktu žemiau.

 Pasted from <http://osdir.com/ml/user-geronimo-apache/2011-03/msg00026.html> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <web:web-app xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0" xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2" xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2" xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2" xmlns:log="http://geronimo.apache.org/xml/ns/loginconfig-2.0" xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2" xmlns:pers="http://java.sun.com/xml/ns/persistence" xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1"> <dep:environment> <dep:moduleId> <dep:groupId>DataStar</dep:groupId> <dep:artifactId>DataStar</dep:artifactId> <dep:version>1.0</dep:version> <dep:type>car</dep:type> </dep:moduleId> <!--Don't load commons-io or fileupload from parent classloaders--> <dep:hidden-classes> <dep:filter>org.apache.commons.io</dep:filter> <dep:filter>org.apache.commons.fileupload</dep:filter> </dep:hidden-classes> <dep:inverse-classloading/> </dep:environment> <web:context-root>/DataStar</web:context-root> </web:web-app> 
5
10 сент. Geoffrey Malafsky atsakymas, rugsėjo 10 d 2013-09-10 18:15 '13, 18:15, 2013-09-10 18:15

Čia pateikiamas apache commons-fileupload naudojimo pavyzdys:

 // apache commons-fileupload to handle file upload DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(new File(DataSources.TORRENTS_DIR())); ServletFileUpload fileUpload = new ServletFileUpload(factory); List<FileItem> items = fileUpload.parseRequest(req.raw()); FileItem item = items.stream() .filter(e -> "the_upload_name".equals(e.getFieldName())) .findFirst().get(); String fileName = item.getName(); item.write(new File(dir, fileName)); log.info(fileName); 
0
21 мая '15 в 19:49 2015-05-21 19:49 Atsakymą Thouliha pateikė gegužės 15 d. 15 val. 19:49 2015-05-21 19:49
 DiskFileUpload upload=new DiskFileUpload(); 

iš šio objekto turėtumėte priimti failus ir laukus, o tada, pvz., galite būti saugomi serveryje.

  String loc="./webapps/prjct name/server folder/"+contentid+extension; File uploadFile=new File(loc); item.write(uploadFile); 
-1
23 марта '15 в 15:37 2015-03-23 15:37 atsakymas yra duotas Mahenderui, kovo 23 d., 15 val. 15:37 2015-03-23 ​​15:37

Galite įkelti failą naudodami jsp / servlet.

 <form action="UploadFileServlet" method="post"> <input type="text" name="description" /> <input type="file" name="file" /> <input type="submit" /> </form> 

kita vertus, serverio pusėje. naudoti šį kodą.

  package com.abc..servlet; import java.io.File; --------- --------  public class UploadFileServlet extends HttpServlet { private static final long serialVersionUID = 1L; public UploadFileServlet() { super(); // TODO Auto-generated constructor stub } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.sendRedirect("../jsp/ErrorPage.jsp"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub PrintWriter out = response.getWriter(); HttpSession httpSession = request.getSession(); String filePathUpload = (String) httpSession.getAttribute("path")!=null ? httpSession.getAttribute("path").toString() : "" ; String path1 = filePathUpload; String filename = null; File path = null; FileItem item=null; boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); String FieldName = ""; try { List items = upload.parseRequest(request); Iterator iterator = items.iterator(); while (iterator.hasNext()) { item = (FileItem) iterator.next(); if (fieldname.equals("description")) { description = item.getString(); } } if (!item.isFormField()) { filename = item.getName(); path = new File(path1 + File.separator); if (!path.exists()) { boolean status = path.mkdirs(); }  File uploadedFile = new File(path + Filename); // for copy file item.write(uploadedFile); } } else { f1 = item.getName(); } } // END OF WHILE response.sendRedirect("welcome.jsp"); } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } } 
-1
04 февр. Atsakymą pateikė Mitul Maheshwari 04 vasaris. 2014-02-04 13:00 '14 13:00 val. 2014-02-04 13:00

HTML puslapis

 <html> <head> <title>File Uploading Form</title> </head> <body> <h3>File Upload:</h3> Select a file to upload: <br /> <form action="UploadServlet" method="post" enctype="multipart/form-data"> <input type="file" name="file" size="50" /> <br /> <input type="submit" value="Upload File" /> </form> </body> </html> 

PASLAUGŲ FILAS

 // Import required java libraries 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 = 50 * 1024; private int maxMemSize = 4 * 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."); } }