Пример загрузки файла калитки

Пример загрузки файла калитки

Пример, показывающий вам, как создать компонент WicketFileUploadField, чтобы пользователь мог выбрать файл с локального диска и загрузить его на сервер.

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

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

//HTML

Чтобы загрузить файл, вы должны включить «multipart mode» в компоненте формы Wicket.

1. Пример FileUpload

Пример визуализации компонента загрузки файла и ограниченияuploaded file size to 10k. И новый загруженный файл будет сохранен в заранее определенном месте.

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-страница

Рендеринг компонента с помощью тега ввода HTML.






    

Wicket file upload example

3. Demo

Начало и посещение -http://localhost:8080/WicketExamples/

Если размер файла превышает 10 КБ, отображается ошибка

wicket file upload error

Все хорошо, отображаемое имя сохраненного файла.

wicket file upload

Скачать -Wicket-FileUpload-Example.zip (7KB)