KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jodd > servlet > upload > impl > DiskFileUpload


1 // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
2

3 package jodd.servlet.upload.impl;
4
5 import jodd.util.SystemUtil;
6 import jodd.servlet.upload.FileUpload;
7 import jodd.servlet.upload.MultipartRequestInputStream;
8 import jodd.servlet.upload.FileUploadFactory;
9
10 import java.io.IOException JavaDoc;
11 import java.io.File JavaDoc;
12 import java.io.FileOutputStream JavaDoc;
13 import java.io.BufferedOutputStream JavaDoc;
14
15 /**
16  * {@link FileUpload} that saves uploaded files directly to destination folder.
17  */

18 public class DiskFileUpload extends FileUpload {
19
20     protected String JavaDoc destFolder;
21
22     public DiskFileUpload(MultipartRequestInputStream input) {
23         super(input);
24         this.destFolder = SystemUtil.getTempDir();
25     }
26
27     public DiskFileUpload(MultipartRequestInputStream input, String JavaDoc destinationFolder) {
28         super(input);
29         this.destFolder = destinationFolder;
30     }
31
32     /**
33      * Returns destination folder.
34      */

35     public String JavaDoc getDestinationFolder() {
36         return destFolder;
37     }
38
39
40     /**
41      * Returns uploaded and saved file.
42      */

43     public File JavaDoc getFile() {
44         return file;
45     }
46
47     protected File JavaDoc file;
48
49     protected void processStream() throws IOException JavaDoc {
50         file = new File JavaDoc(destFolder, header.getFileName());
51         FileOutputStream JavaDoc fos = new FileOutputStream JavaDoc(file);
52         size = -1;
53         try {
54             size = input.copyAll(new BufferedOutputStream JavaDoc(fos));
55         } finally {
56             try {
57                 fos.close();
58             } catch(Exception JavaDoc ex) {
59                 // ignore
60
}
61         }
62     }
63
64     // ---------------------------------------------------------------- factory
65

66     public static class Factory implements FileUploadFactory {
67
68         public FileUpload create(MultipartRequestInputStream input) {
69             return new DiskFileUpload(input);
70         }
71     }
72 }
73
Popular Tags