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 ;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 // ---------------------------------------------------------------- logic22 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 {36 FastByteArrayOutputStream fbos = new FastByteArrayOutputStream();37 input.copyAll(fbos);38 data = fbos.toByteArray();39 this.size = data.length;40 }41 42 43 44 // ---------------------------------------------------------------- factory45 46 public static class Factory implements FileUploadFactory {47 48 public FileUpload create(MultipartRequestInputStream input) {49 return new MemoryFileUpload(input);50 }51 }52 }