Wicket自己定义有上传、下载的控件,使得这些操作变得非常简单,你可以把它写成单独的组件(Panel),随时调用即可。
我把自己做的这两个功能简单归纳一下:
上传操作:
<form wicket:id="form">
<input type="file" wicket:id="UpLoadFile">
<input type="submit" wicket:id="submit">
</form>
Form form = new Form("form");
this.add(form);
form.setMultiPart(true);
form.setMaxSize(Bytes.kilobytes(10000));
final FileUploadField fileUpload = new FileUploadField("UpLoadFile");
form.add(fileUpload);
form.add(new AjaxSubmitLink("submit",form){
private static final long serialVersionUID = 1L;
protected void onSubmit(AjaxRequestTarget target,Form form){
FileUpload fu = fileUpload.getFileUpload();
if(fu!=null){
String docName = fu.getClientFileName();
String temp[] = docName.split("\\\\"); /**split里面必须是正则表达式,"\\"的作用是对字符串转义*/
String fileName = temp[temp.length-1];
System.out.println(fileName);
String path = "C:/upload/";
try {
File newFile = new File(path,fileName);
fu.writeTo(newFile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
上传完成!
下载就更简单了:
<span wicket:id="url"></span>
<span wicket:id="url">点击下载</span>
File fileToDownload = new File(""+url+"");
DownloadLink downloadLink = new DownloadLink("url",fileToDownload);
this.add(downloadLink);
url是我从数据库里面取出来的文件路径,如“c:/demo.txt”