ウィケットファイルのアップロードの例

Wicketファイルのアップロードの例

WicketFileUploadFieldコンポーネントを作成して、ユーザーがローカルドライブからファイルを選択し、サーバーにアップロードできるようにする方法を示す例。

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

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

//HTML

ファイルをアップロードするには、Wicketフォームコンポーネントで「multipart mode」を有効にする必要があります。

1. FileUploadの例

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

ファイルサイズが10kを超える場合、表示エラー

wicket file upload error

すべて問題ありません。保存されたファイル名を表示します。

wicket file upload

ダウンロード–Wicket-FileUpload-Example.zip(7KB)