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/

posted on 2015-03-19 16:12  肥兔子爱豆畜子  阅读(239)  评论(0编辑  收藏  举报

导航