Beispiel für Hochladen der Wicket-Datei

Beispiel für das Hochladen von Wicket-Dateien

Beispiel, das Ihnen zeigt, wie Sie eine WicketFileUploadField-Komponente erstellen, damit der Benutzer eine Datei vom lokalen Laufwerk auswählen und auf den Server hochladen kann.

//Java
import org.apache.wicket.markup.html.form.upload.FileUploadField;

    form.setMultiPart(true);
    form.add(fileUpload = new FileUploadField("fileUpload"));

//HTML

Um eine Datei hochzuladen, müssen Sie "multipart mode" in der Wicket-Formularkomponente aktivieren.

1. FileUpload-Beispiel

Beispiel zum Rendern einer Datei-Upload-Komponente und zum Begrenzen vonuploaded file size to 10k. Die neu hochgeladene Datei wird an einem vordefinierten Ort gespeichert.

package com.example.user;

import java.io.File;
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.markup.html.form.upload.FileUploadField;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.util.lang.Bytes;

public class FileUploadPage extends WebPage {

    private FileUploadField fileUpload;
    private String UPLOAD_FOLDER = "C:\\";

    public FileUploadPage(final PageParameters parameters) {

        add(new FeedbackPanel("feedback"));

        Form form = new Form("form") {
         @Override
         protected void onSubmit() {

            final FileUpload uploadedFile = fileUpload.getFileUpload();
            if (uploadedFile != null) {

                // write to a new file
                File newFile = new File(UPLOAD_FOLDER
                    + uploadedFile.getClientFileName());

                if (newFile.exists()) {
                    newFile.delete();
                }

                try {
                    newFile.createNewFile();
                    uploadedFile.writeTo(newFile);

                    info("saved file: " + uploadedFile.getClientFileName());
                } catch (Exception e) {
                    throw new IllegalStateException("Error");
                }
             }

            }

        };

        // Enable multipart mode (need for uploads file)
        form.setMultiPart(true);

        // max upload size, 10k
        form.setMaxSize(Bytes.kilobytes(10));

        form.add(fileUpload = new FileUploadField("fileUpload"));

        add(form);

    }
}

2. HTML-Seite

Rendern Sie die Komponente über ein HTML-Eingabe-Tag.






    

Wicket file upload example

3. Demo

Wenn die Dateigröße mehr als 10 KB beträgt, wird ein Anzeigefehler angezeigt

wicket file upload error

Alles in Ordnung, Namen der gespeicherten Datei anzeigen.

wicket file upload

Laden Sie es herunter -Wicket-FileUpload-Example.zip (7 KB)