如何从OutputStream获取文件以检索上载的文件

时间:2013-12-19 07:35:47

标签: java vaadin7

收到上传的文件后,我想返回一个代表上传文件的文件,我覆盖了receiveUpload方法:

 /**
  * Invoked when a new upload arrives.
  * 
 * @param filename
 *            the desired filename of the upload, usually as specified
 *            by the client.
 * @param mimeType
 *            the MIME type of the uploaded file.
 * @return Stream to which the uploaded file should be written.
 */

 public OutputStream receiveUpload(String filename, String mimeType);`

那么返回new File对象的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

这取决于你想做什么。方法receiveUpload()Receiver接口的一部分。您需要提供Vaadin可用于将上传数据写入的outputStream

您可能并不总是想要写入文件。也许你想写一个数据库或只是写一个字节数组,以便进一步处理数据。

假设您要写入文件,您只需在磁盘上创建一个文件并将FileOutputStream返回到此文件。

要创建临时文件,您可以使用:

    File file = File.createTempFile(fileName, ".tmp");
    return new FileOutputStream(file);

但是如果你想写一个特定的位置,你可以直接提供填充文件路径,例如:

    File file = new File("/path/to/my/file/storage/" + filename);
    return new FileOutputStream(file);

有关详细信息,请查看Book of Vaadin