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-FileUpload-Example.zip(7KB)