Commons FileUpload文件上传组件
Java实现的文件上传组件有好几种,其中最为“官方”的要数Apache Commons库中的FileUpload了吧。
页面
<form method="POST" enctype="multipart/form-data" action="fup.cgi"> File to upload: <input type="file" name="upfile"><br/> Notes about the file: <input type="text" name="note"><br/> <br/> <input type="submit" value="Press"> to upload the file! </form>
后台java,可在servlet或者struts的action中处理
// Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Configure a repository (to ensure a secure temp location is used) ServletContext servletContext = this.getServlet().getServletContext(); File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); factory.setRepository(repository); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Parse the request try { List<FileItem> items = upload.parseRequest(request); // Process the uploaded items Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = iter.next(); if (item.isFormField()) { //processFormField(item); } else { //processUploadedFile(item); String fieldName = item.getFieldName(); String fileName = item.getName(); String contentType = item.getContentType(); boolean isInMemory = item.isInMemory(); long sizeInBytes = item.getSize(); File uploadedFile = new File("temp.xls"); item.write(uploadedFile); }}
以上代码作用是将一个文件(这里是一个excel)从客户端的浏览器通过form表单上传到服务器,服务器端的FileUpload将它保存到temp.xls中。
参考: http://commons.apache.org/proper/commons-fileupload/