<xml version="1.0" encoding="UTF-8"?>
<window>
<label value="test"></label>
<button label="upload">
<attribute name="onClick">
<![CDATA[
import org.zkoss.zk.ui.util.Configuration;
import java.io.*;
import org.zkoss.io.Files;
Desktop desktop = self.getDesktop();
Configuration conf = desktop.getWebApp().getConfiguration();
conf.setMaxUploadSize(1024);
//解决中文问题,如果上传的文件中有中文
conf.setUploadCharset("gbk");
//如果文本文件的话,返回的实际是AMedia类型
Object media = Fileupload.get();
//多文件
//Object[] mediaArray = Fileupload.get(5);
if(media!=null){
String fileName = media.getName();
if(!fileName.endsWith(".txt")){
alert("not a txt file");
return;
}
/**
* 用Reader的方式,实际是StringReader
*/
Reader r = media.getReaderData();
File f = new File("c:\\"+fileName);
/*
//可以获得相对路径
File f = new File(Executions.getCurrent().getDesktop().getWebApp().getRealPath("medias") + "/"+ media.getName());
*/
if(!f.exists()){
f.createNewFile();
}
//Files类是由ZK提供的
Files.copy(f,r,null);
Files.close(r);
/*
//用InputStream的实现方式
InputStream ins = new ByteArrayInputStream(media.getStringData().getBytes());
File f = new File("c:\\temp\\"+fileName);
if(!f.exists()){
f.createNewFile();
}
OutputStream out = new FileOutputStream(f);
byte[] buf=new byte[1024];
int len;
while((len=ins.read(buf))>0){
out.write(buf,0,len);
}
out.close();
ins.close();
*/
alert("file created");
}
//alert(media.getStringData().length());
//alert(media.getName());
]]>
</attribute>
</button>
<vbox id="file">
</vbox>
</window>
ZK 例子文件上传
最新推荐文章于 2018-03-08 20:53:47 发布
1501

被折叠的 条评论
为什么被折叠?



