KickJava   Java API By Example, From Geeks To Geeks.

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


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

3 package jodd.servlet.upload.impl;
4
5 import jodd.io.FastByteArrayOutputStream;
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
12 /**
13  * {@link FileUpload} that stores uploaded files in memory byte array.
14  */

15 public class MemoryFileUpload extends FileUpload {
16
17     public MemoryFileUpload(MultipartRequestInputStream input) {
18         super(input);
19     }
20
21     // ---------------------------------------------------------------- logic
22

23     protected byte[] data;
24
25     /**
26      * Returns byte array containing uploaded file data.
27      */

28     public byte[] getFileData() {
29         return data;
30     }
31
32     /**
33      * Reads data from input stream into byte array and stores file size.
34      */

35     public void processStream() throws IOException JavaDoc {
36         FastByteArrayOutputStream fbos = new FastByteArrayOutputStream();
37         input.copyAll(fbos);
38         data = fbos.toByteArray();
39         this.size = data.length;
40     }
41
42
43
44     // ---------------------------------------------------------------- factory
45

46     public static class Factory implements FileUploadFactory {
47
48         public FileUpload create(MultipartRequestInputStream input) {
49             return new MemoryFileUpload(input);
50         }
51     }
52 }
Popular Tags