java上传文件

来源:互联网 发布:python 2.7中文版 编辑:程序博客网 时间:2024/05/29 12:52
<html><head><title>Upload File (Using commons-fileupload-1.2.2.jar tool)</title></head><body><center><h1>File Upload</h1><form name="uploadform" method="post" action="uploadfile"ENCTYPE="multipart/form-data"><!-- 上传文件的表单中,必须有ENCTYPE="multipart/form-dat"属性,才可以实现RFC1867协议 --><table border="1" width="450" cellpadding="4" cellspacing="2"bordercolor="#9BD7FF"><tr><td width="100%" colspan="2">File:<input name="file" size="40" type="file" /></td></tr><tr><td align="center"><input name="upload" type="submit" value="Upload" /></td></tr></table></form></center></body></html>

 

public class UploadFile extends HttpServlet{// 使用 commons-fileupload-1.2.2.jar+commons-io-2.0.1.jar工具实现文件上传功能private static final long serialVersionUID = 1L;public void doPost(HttpServletRequest request, HttpServletResponse response){ServletOutputStream out = null;try {out = response.getOutputStream();boolean isMultipart = ServletFileUpload.isMultipartContent(request);// .isMultipartContent(request)的作用是:判断请求消息中的内容是否是“multipart/form-data”类型。if(isMultipart) {DiskFileItemFactory factory = new DiskFileItemFactory(1024*4, new File("d:/data"));// 创建磁盘工厂,利用构造器实现内存数据存储量和临时存储路径//factory.setSizeThreshold(4096);// 设置最多只允许在内存中存储的数据(单位:字节)//factory.setRepository(new File("d:/data"));// 设置文件临时存储路径ServletFileUpload upload = new ServletFileUpload(factory);upload.setHeaderEncoding("UTF-8");upload.setSizeMax(1024*1024*100);// 设置允许用户上传文件大小(单位:字节)/*try {// 解析请求 Iterator<FileItem> iter = (Iterator<FileItem>)upload.getItemIterator(request); // } catch (FileUploadException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}*/List<FileItem> fileItems = upload.parseRequest(request);// 得到所有的表单域Iterator<FileItem> iter = fileItems.iterator();while(iter.hasNext()) {FileItem item = (FileItem)iter.next();if(item.isFormField()) {String name = item.getFieldName();String value = item.getString("UTF-8");out.println("FormFieldName is :" + name + " and value is:" + value + "<br>");}else{String fileName = item.getName();if(fileName != null) {File fullFile = new File(item.getName());File fileOnServer = new File("D:/data/data/" + fullFile.getName());// 设置上传路径和文件名item.write(fileOnServer);out.println("File:" + fileOnServer.getName()+ "upload complete<br>");}}}out.println("Success to UploadFile !<br>");return;}out.println("Fail to UploadFile<br>");} catch (FileUploadException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();}catch (IOException e1) {e1.printStackTrace();}catch (Exception e) {e.printStackTrace();}}}