2017-09-14 2 views
-1

Ich würde gerne wissen, wie man eine Datei von einem Vaadin Upload-Komponente erhalten. Hier ist das Beispiel auf der Vaadin Website , aber es enthält nicht, wie Sie es außer etwas über OutputStreams speichern. Hilfe!So speichern Sie hochgeladene Datei

+1

Wie gesagt in docs, Sie haben eine Methode namens 'receiveUpload'. In dieser Methode nehmen Sie einen Dateinamen und seinen Mime-Typ. Dann müssen Sie einen 'OutputStream' [(Java 7 doc)] (https://docs.oracle.com/javase/7/docs/api/java/io/OutputStream.html) mit einer' Datei' mit diesem Dateinamen erstellen und gib es zurück ... Natürlich muss sich die 'Datei' dort befinden, wo du den Upload speichern willst. – Shirkam

+0

@Shirkam Kann ich Code haben? als Speicherort ist C: \ –

+1

Ja, warum nicht, stackoverflow ist Ihre kostenlose Programmierer-Community ... –

Antwort

2

Um eine Datei-Upload in Vaadin erhalten Sie Receiver Schnittstelle implementieren müssen, weicht man mit einer receiveUpload(filename, mimeType) Methode liefert, verwendet, um die Informationen zu erhalten. Die einfachste Code, dies zu tun wäre (Genommen als Beispiel aus 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 
    } 
}; 

Damit die Uploader Sie eine Datei in C:\ schreiben. Wenn Sie etwas wünschen, nachdem der Upload erfolgreich abgeschlossen wurde, oder nicht, können Sie oder FailedListener implementieren. Nehmen wir das Beispiel oben, könnte das Ergebnis (mit SucceededListener) sein:

class FileUploader implements Receiver { 
    //receiveUpload implementation 

    public void uploadSucceeded(SucceededEvent event) { 
     //Do some cool stuff here with the file 
    } 
} 
Verwandte Themen