HTML5 input の webkitdirectory 付与は、Google chrome と Fire Fox しか今のところ使えないが、、
Wicket でこれを受信するのは、FileUploadField コンポーネントの getFileUploads() で
List<FileUpload> を受け取ることになる。
<input wicket:id="uploadfile" id="uploadfile" type="file" webkitdirectory>
Wikcet
final FileUploadField fileuploadField = new FileUploadField("uploadfile"); queue(fileuploadField); queue(new Button("submit").add(AjaxFormSubmitBehavior.onSubmit("click", t->{ fileuploadField.getFileUploads().stream().forEach(f->{ // f.getClientFileName()); // f.getSize() byte // Bytes.bytes(f.getSize()).toString() KByte // f.getInputStream() }); })));
フォルダを選択した時の change イベントで JavaScript 上では以下のように
情報を読み取る。
$(function(){ $("#uploadfile").change(function(ev) { for(var i=0; i < ev.target.files.length; i++){ var file = ev.target.files[i]; console.log(file); // ディレクトリの相対パス var path = file.webkitRelativePath; console.log([" + path + "]"); } }); });