这个例子展示了如何使用JSP将用户指定的本地文件上传到服务器某个目录下面。
首先是文件上传的用户界面:
File Uploading Form
File Upload:
Select a file to upload:
界面如下:
UploadServlet.jsp的源代码:
= 0)) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(maxMemSize); factory.setRepository(new File("c:emp")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax( maxFileSize ); try{ List fileItems = upload.parseRequest(request); Iterator i = fileItems.iterator(); out.println(""); out.println(""); out.println("JSP File upload"); out.println(""); out.println(""); while ( i.hasNext () ) { FileItem fi = (FileItem)i.next(); if ( !fi.isFormField () ) { String fieldName = fi.getFieldName(); String fileName = fi.getName(); boolean isInMemory = fi.isInMemory(); long sizeInBytes = fi.getSize(); 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: " + filePath + fileName + "
"); } } out.println(""); out.println(""); }catch(Exception ex) { System.out.println(ex); } }else{ out.println(""); out.println(""); out.println("Servlet upload"); out.println(""); out.println(""); out.println("
No file uploaded
"); out.println(""); out.println(""); }%>
web.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>jerryjspindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspFile Upload Positionfile-upload c:emp
用Choose File选中一个本地文件,然后点击Upload File进行上传:
上传成功,在c盘temp文件夹下发现了成功上传的文件: