]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - eclipse/rap/org.eclipse.rwt.widgets.upload/src/org/eclipse/rwt/widgets/UploadItem.java
Introduce file upload widget
[lgpl/argeo-commons.git] / eclipse / rap / org.eclipse.rwt.widgets.upload / src / org / eclipse / rwt / widgets / UploadItem.java
diff --git a/eclipse/rap/org.eclipse.rwt.widgets.upload/src/org/eclipse/rwt/widgets/UploadItem.java b/eclipse/rap/org.eclipse.rwt.widgets.upload/src/org/eclipse/rwt/widgets/UploadItem.java
new file mode 100644 (file)
index 0000000..650711d
--- /dev/null
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * Copyright (c) 2002-2006 Innoopract Informationssysteme GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     Innoopract Informationssysteme GmbH - initial API and implementation
+ ******************************************************************************/
+
+package org.eclipse.rwt.widgets;
+
+import java.io.InputStream;
+
+/**
+ * Pojo for which contains a reference to the uploaded file stream and all
+ * available meta information.
+ * 
+ * @author Stefan.Roeck
+ */
+public class UploadItem {
+
+  private final InputStream fileInputStream;
+  private final String contentType;
+  private final String fileName;
+  private final String filePath;
+  private final long fileSize;
+  
+  /**
+   * Creates an UploadItem instance with the given parameters which all can be
+   * null.
+   */
+  public UploadItem( final InputStream fileInputStream,
+                     final String contentType,
+                     final String fileName,
+                     final String filePath,
+                     final long fileSize)
+  {
+    super();
+    this.fileInputStream = fileInputStream;
+    this.fileName = fileName;
+    this.filePath = filePath;
+    this.contentType = contentType;
+    this.fileSize = fileSize;
+  }
+  
+  /**
+   * Returns an inputstream to the uploaded file. Make sure to call
+   * {@link InputStream#close()} if processing the file is finished.    
+   */
+  public InputStream getFileInputStream() {
+    return fileInputStream;
+  }
+  
+  /**
+   * Returns the content type of the last uploaded file as submitted in 
+   * http POST request by the browser. See RFC2616 for possible values.
+   */
+  public String getContentType() {
+    return contentType;
+  }
+
+  
+  /**
+   * Returns the file name of the uploaded file without any path information.
+   */
+  public String getFileName() {
+    return fileName;
+  }
+  
+  /**
+   * Returns the file name plus the local path where this file has been chosen
+   * from. <br/> Note: In Firefox 3 the return value equals
+   * {@link UploadItem#getFileName()}. (Tested with RC1)
+   */
+  public String getFilePath() {
+    return filePath;
+  }
+
+  /**
+   * Returns the size of the File in the {@link UploadItem#getFileInputStream()} thats stored in this UploadItem
+   * . (Tested with RC3)
+   */
+  public long getFileSize() {
+    return fileSize;
+  }
+}