Exemple de téléchargement de fichier Wicket

Exemple de téléchargement de fichier Wicket

Exemple pour vous montrer comment créer un composant WicketFileUploadField, pour permettre à l'utilisateur de sélectionner un fichier à partir du lecteur local et de le télécharger sur le serveur.

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

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

//HTML

Pour télécharger un fichier, vous devez activer «multipart mode» dans le composant de formulaire Wicket.

1. Exemple FileUpload

Exemple pour rendre un composant de téléchargement de fichiers et limiter lesuploaded file size to 10k. Et le nouveau fichier téléchargé sera enregistré dans un emplacement prédéfini.

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. Page HTML

Rendez le composant via la balise d'entrée HTML.






    

Wicket file upload example

3. Demo

Si la taille du fichier est supérieure à 10 000, l'erreur d'affichage

wicket file upload error

Tout va bien, affichez le nom du fichier enregistré.

wicket file upload

Téléchargez-le -Wicket-FileUpload-Example.zip (7 Ko)