Die Upload-Komponente ermöglicht den Zugriff auf das lokale Dateisystem des Client, um beliebige Dateien auszuwählen und anschließend auf den Server hochzuladen. Die Komponente besteht aus einem Button, der den lokalen Dateimanger aufruft und die Auswahl einer Datei ermöglicht sowie aus einem zweiten Button, der den Upload-Vorgang startet. Zwischen den Buttons wird der Name der ausgewählten Datei angezeigt.
Die Upload-Komponente benötigt einen "Receiver", der auf Serverseite die Datei empfängt und weiterverarbeitet.
Wichtige Properties:
- ButtonCaption - Beschriftung des Upload-Buttons.
Caption - Zeigt den Text als Beschriftung an.
- Receiver - Der Receiver ist ein Objekt, das die Verarbeitung der Datei auf Serverseite übernimmt.
TabIndex - Definiert die Reihenfolge im Tab-Index. Der Tab-Index definiert die Reihenfolge mehrerer UI-Komponenten, die durch Drücken der Tab Taste nacheinander selektiert werden.
Wichtige Events:
- uploadFailed - Wird ausgelöst, wenn der Upload fehlschlägt.
- uploadFinished - Wird ausgelöst, sobald der Upload beendet ist. Zu diesem Zeitpunkt steht noch nicht fest, ob der Upload erfolgreich war oder nicht.
- updateProgress - Wird regelmäßig während des Uploads ausgelöst. Damit ist es möglich, den Fortschritt des Uploads zu verfolgen.
- uploadStarted - Wird ausgelöst, sobald der Upload begonnen hat.
- uploadSucceeded - Wird ausgelöst, sobald der Upload beendet ist und erfolgreich war.
Databinding:
- Kein Databinding vorhanden.
Examples:
Upload einer Datei
// For later usage, e.g. in a message displayed by uploadSucceeded-Event File file; // Build receiver Receiver receiver = new Receiver() { @Override public OutputStream receiveUpload(final String filename, final String mimeType) { // Create upload stream to write to FileOutputStream fos = null; try { // Get path to servlet's temp directory final File temporaryDirectory = (File) VaadinServlet.getCurrent().getServletContext().getAttribute(ServletContext.TEMPDIR); // Concatenate temporaryDirectory with filename and open the file for writing. file = new File(temporaryDirectory, filename); // Create the output stream fos = new FileOutputStream(file); } catch (final java.io.FileNotFoundException e) { Notification.show("Could not open file", Type.ERROR_MESSAGE); return null; } return fos; } }; // Set Receiver for upload component upload.setReceiver(receiver);