FileUpload


 1 package robert.utilities;
 2 
 3 import java.util.Iterator;
 4 import java.util.List;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 
 8 import org.apache.commons.fileupload.FileItem;
 9 import org.apache.commons.fileupload.FileItemFactory;
10 import org.apache.commons.fileupload.FileUploadException;
11 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
12 import org.apache.commons.fileupload.servlet.ServletFileUpload;
13 
14 /**
15  * FileUpload Utilities
16  * @author Robert Lai
17  *
18  */
19 public class FileUploadUtils {
20 
21     public void save(HttpServletRequest request){
22         
23         //Check that we have a file upload request
24         boolean isMultipart=ServletFileUpload.isMultipartContent(request);
25         if(!isMultipart){
26             return;
27         }
28         //Create a factory for disk-based file items
29         FileItemFactory factory = new DiskFileItemFactory();
30         // Create a factory for disk-based file items
31 //        DiskFileItemFactory factory = new DiskFileItemFactory(yourMaxMemorySize, yourTempDirectory);
32         // Set factory constraints
33 //        factory.setSizeThreshold(yourMaxMemorySize);
34 //        factory.setRepository(yourTempDirectory);
35 
36         //Create a new file upload handler
37         ServletFileUpload upload = new ServletFileUpload(factory);
38         // Set overall request size constraint
39 //        upload.setSizeMax(yourMaxRequestSize);
40 
41         // Parse the request
42 //        FileItemIterator iter = upload.getItemIterator(request);
43 //        while (iter.hasNext()) {
44 //            FileItemStream item = iter.next();
45 //            String name = item.getFieldName();
46 //            InputStream stream = item.openStream();
47 //            if (item.isFormField()) {
48 //                System.out.println("Form field " + name + " with value "
49 //                    + Streams.asString(stream) + " detected.");
50 //            } else {
51 //                System.out.println("File field " + name + " with file name "
52 //                    + item.getName() + " detected.");
53 //                // Process the input stream
54 //                
55 //            }
56 //        }
57         
58         //Parse the request
59         List<FileItem> items=null;
60         try {
61             items = upload.parseRequest(request);
62         } catch (FileUploadException e) {
63             e.printStackTrace();
64         }
65         // Process the uploaded items
66         Iterator iter = items.iterator();
67         while (iter.hasNext()) {
68             FileItem item = (FileItem) iter.next();
69             if (item.isFormField()) {
70                 //processFormField(item);
71                 String name = item.getFieldName();
72                 String value = item.getString();
73             } else {
74                 //processUploadedFile(item);
75                 String fieldName = item.getFieldName();
76                 String fileName = item.getName();
77                 String contentType = item.getContentType();
78                 boolean isInMemory = item.isInMemory();
79                 long sizeInBytes = item.getSize();
80                 
81              // Process a file upload
82 //                if (writeToFile) {
83 //                    File uploadedFile = new File();
84 //                    item.write(uploadedFile);
85 //                } else {
86 //                    InputStream uploadedStream = item.getInputStream();
87 //                    
88 //                    uploadedStream.close();
89 //                }
90              // Process a file upload in memory
91                 byte[] data = item.get();
92 
93             }
94         }
95     }
96 }
97 
这不是一个完整的代码。只是可以作为参考的。
posted @ 2009-08-31 22:15  懒萝卜  阅读(810)  评论(0编辑  收藏  举报