2017-09-14 12 views
-1

Vaadin Upload Componentからファイルを取得する方法を知りたいと思います。ここにはVaadin Website の例がありますが、OutputStreams以外のものを保存する方法は含まれていません。 ヘルプ!アップロードしたファイルを保存するには

+1

と同じように、あなたにはreceiveUploadというメソッドがあります。このメソッドでは、ファイル名とそのMIMEタイプを取ります。次に、そのファイル名を持つ 'File'を使って' OutputStream' [(java 7 doc)](https://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html)を作成する必要がありますそれを返す...もちろん、 'File'はあなたがアップロードを保存したい場所になければなりません。 – Shirkam

+0

@Shirkamいくつかのコードはありますか?場所はC:\ –

+1

ですね。なぜ、stackoverflowはあなたのコストのかからないプログラマーコミュニティです... –

答えて

2

Vaadinでファイルアップロードを受信するには、receiveUpload(filename, mimeType)メソッドを提供するReceiverメソッドを実装し、情報を受け取る必要があります。これを行うための最も簡単なコードは(Vaadin 7 docsから例にとる)ことになります。それに

class FileUploader implements Receiver { 
    private File file; 
    private String BASE_PATH="C:\"; 

    public OutputStream receiveUpload(String filename, 
            String mimeType) { 
     // Create upload stream 
     FileOutputStream fos = null; // Stream to write to 
     try { 
      // Open the file for writing. 
      file = new File(BASE_PATH + filename); 
      fos = new FileOutputStream(file); 
     } catch (final java.io.FileNotFoundException e) { 
      new Notification("Could not open file<br/>", 
         e.getMessage(), 
         Notification.Type.ERROR_MESSAGE) 
      .show(Page.getCurrent()); 
      return null; 
     } 
     return fos; // Return the output stream to write to 
    } 
}; 

は、UploaderC:\にあなたのファイルを書き込みます。アップロードが正常に完了した後に何かをしたい場合は、SucceeddedListenerまたはFailedListenerを実装できます。上記の例を考えてみると、結果は(SucceededListener)となります。

class FileUploader implements Receiver { 
    //receiveUpload implementation 

    public void uploadSucceeded(SucceededEvent event) { 
     //Do some cool stuff here with the file 
    } 
} 
関連する問題