ウィケットファイルのアップロードの例
Wicket
FileUploadField
コンポーネントの作成方法を示す例で、ユーザーがローカルドライブからファイルを選択してサーバーにアップロードできるようにします。
….//Java
import org.apache.wicket.markup.html.form.upload.FileUploadField;
form.setMultiPart(true); form.add(fileUpload = new FileUploadField("fileUpload")); //HTML <input wicket:id="fileUpload" type="file"/>
ファイルをアップロードするには、Wicketフォームコンポーネントで「** multipart mode ** 」を有効にする必要があります。 === 1. FileUploadの例 ファイルアップロードコンポーネントをレンダリングし、アップロードされたファイルサイズを10k ** に制限する例新しいアップロードされたファイルは、あらかじめ定義された場所に保存されます。
package com.mkyong.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<Void>("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入力タグを使用してコンポーネントをレンダリングします。
<html>
<head>
<style>
.feedbackPanelINFO {
color: green;
}
.feedbackPanelERROR {
color: red;
}
</style>
</head>
<body>
<h1>Wicket file upload example</h1>
<div wicket:id="feedback"></div> <form wicket:id="form"> <p> <label>Select file :</label> <input wicket:id="fileUpload" size="40" type="file"/> <input type="submit" value="Upload"/> </p> </form>
</body>
</html>
=== デモ 開始と訪問 - __http://localhost:8080/WicketExamples/__ ファイルサイズが10kを超えると、表示エラー image://wp-content/uploads/2011/05/wicket-file-upload-example-error.png[wicketファイルのアップロードエラー、title = "wicket-file-upload-example-error"、width = 584、height = 328] すべてOK、保存されたファイル名を表示します。 image://wp-content/uploads/2011/05/wicket-file-upload-example-done.png[wicketファイルのアップロード、title = "wicket-file-upload-example-done"、width = 555、height = 314] ダウンロードする - link://wp-content/uploads/2011/05/Wicket-FileUpload-Example.zip[Wicket-FileUpload-Example.zip](7KB) === 参考文献 . http://wicket.apache.org/apidocs/1.4/org/apache/wicket/markup/html/form/upload/FileUpload.html[Wicket FileUpload Javadoc]。 http://wicket.apache.org/apidocs/1.4/org/apache/wicket/markup/html/form/upload/FileUploadField.html[ウィケット FileUploadField Javadoc] リンク://タグ/ファイルアップロード/[ファイルアップロード]リンク://タグ/ウィケット/[ウィケット]