ZK 文件上传,分文本文件与其他类型的文件
来源:互联网 发布:mac csgo打开黑屏 编辑:程序博客网 时间:2024/05/17 15:37
第一种 全部在 ZUL 页面实现
<?page title="new page title" contentType="text/html;charset=UTF-8"?><zk><window title="" border="normal"> <button label="upload"> <attribute name="onClick"> <![CDATA[ import org.zkoss.zk.ui.util.Configuration; import org.zkoss.io.Files; import java.io.Reader; import java.io.File; Desktop desktop = self.getDesktop(); org.zkoss.zk.ui.util.Configuration conf = desktop.getWebApp().getConfiguration(); conf.setMaxUploadSize(1024);//解决中文问题,如果上传的文件中有中文conf.setUploadCharset("utf-8");//如果文本文件的话,返回的实际是AMedia类型 Object media = Fileupload.get(); //多文件 //Object[] mediaArray = Fileupload.get(5); if(media!=null){String fileName = media.getName(); if(fileName.endsWith(".txt")){// 上傳text文件Reader r = media.getReaderData(); File f = new File("F:\\"+fileName); if(!f.exists()){f.createNewFile();}//Files类是由ZK提供的Files.copy(f,r,null);Files.close(r); alert("file created"); }else{ long intRet = 0; java.io.FileOutputStream os = new java.io.FileOutputStream("F:\\"+fileName);int bytesRead = 0;byte[] buffer = new byte[1024];java.io.InputStream ins = media.getStreamData();while ((bytesRead = ins.read(buffer, 0, 1024)) != -1) {os.write(buffer, 0, bytesRead);intRet += bytesRead;}os.flush();os.close();ins.close();alert("file created success"); } }]]></attribute></button> <vbox id="file"> </vbox></window></zk>
zul 页面
<?page title="new page title" contentType="text/html;charset=UTF-8"?><zk><window id="winImport" border="normal" use="com.mytest.Import"><button width="80px" label="Upload"id="btnUpload" upload="true"> <attribute name="onUpload">{org.zkoss.util.media.Media media = event.getMedia();winImport.uploadFileMedia(media);} </attribute></button> </window></zk>
java文件package com.mytest;import org.zkoss.util.media.Media;import org.zkoss.zul.Messagebox;import org.zkoss.io.Files; import com.sae.zksys.zk.util.MyMessagebox;import com.sae.zksys.zk.util.MyWindow;import java.io.File;import java.io.Reader;import java.net.MalformedURLException;import jcifs.smb.SmbException;public class Import extends MyWindow{public void uploadFileMedia(Object fileMedia) throws MalformedURLException, SmbException {if (fileMedia != null) {Media media = (Media) fileMedia;String fileName = media.getName();String path = System.getProperty("catalina.home"); String filePath=path+ "/TempFiles"; //文件保存路徑java.io.File file = new java.io.File(filePath);if (!file.exists()){file.mkdir();}filePath=filePath+"/" + fileName;if(!fileName.endsWith(".xls")){ Messagebox.show("只能上傳.xls文件!","ERROR",Messagebox.OK, Messagebox.ERROR);return; }java.io.File filex = new java.io.File(filePath);if(filex.exists()){MyMessagebox.warn("Failed! " + fileName + " 該文件已經存在!");return ;}long size = uploadFile(filePath, media);MyMessagebox.info("文件上傳成功!");if (size > 0) { // upload successfile=new File(filePath);long len=file.length();//file.delete();//文件刪除int ret=XlsUtil4Spreadsheet.insertRow(filePath,fileName,len);MyMessagebox.info(String.valueOf(ret));if(ret==0){Messagebox.show("保存日誌文件出錯!","ERROR",Messagebox.OK, Messagebox.ERROR);return ;}}}}public static long uploadFile(String filePath, Media media) {long intRet = 0;try {if (media.getContentType().toLowerCase().startsWith("text")) {Reader r = media.getReaderData();File f = new File(filePath);if (!f.exists()) {f.createNewFile();}Files.copy(f, r, null);Files.close(r);intRet = f.length();} else {java.io.FileOutputStream os = new java.io.FileOutputStream(filePath);int bytesRead = 0;byte[] buffer = new byte[1024];java.io.InputStream ins = media.getStreamData();while ((bytesRead = ins.read(buffer, 0, 1024)) != -1) {os.write(buffer, 0, bytesRead);intRet += bytesRead;}os.flush();os.close();ins.close();}} catch (Exception e) {String msg = "Failed to upload " + filePath;throw new RuntimeException(msg);}return intRet;}}
0 0
- ZK 文件上传,分文本文件与其他类型的文件
- 改变文件的权限与其他属性
- zk + struts2混合 文件上传的问题
- Java开发-使用Ajax进行文件与其他参数的上传
- 文本文件与其他二进制文件的区别
- zk文件上传方法部分
- 当form里增加enctype="multipart/form-data"时,上传文件与其他表单数据的研究
- mysql与其他文件编译 Makefile总结
- linux与其他操作系统文件共享方法
- CString与其他类型的转换
- CString与其他类型的转换
- CString与其他字符类型的转换
- CString与其他类型的转换
- 字节数组与其他类型的转化
- CString 与其他类型的转换
- [MFC]CString与其他类型的转换
- CString与其他类型的转换 .
- 字符串与其他类型的互转换
- 使用 sshpass 用于非交互的 ssh 密码验证登录
- 3531AP热点支持说明
- ECSHOP网站--商品页显示累计销售量
- shell脚本加密
- 发送http post请求soap服务
- ZK 文件上传,分文本文件与其他类型的文件
- c编译生成so 库
- git submodule的使用
- ueditor使用小结
- ECSHOP网站--ecshop全部表的含义
- JDK之Date源码解析
- 取出字符串中所有字母(字符)
- maven聚合项目 打包时候先整体install
- 5-26 单词长度