ExtJS:文件上传实例
ExtJS:文件上传实例
var ext_dateFormat = ‘Y-m-d H:i:s‘; var dateFormat = ‘yyyy-MM-dd HH:mm:ss‘; var date = new Date(); Ext.onReady(function() { var fifp =Ext.create(‘Ext.form.Panel‘, { renderTo: ‘fi-form‘, width: 500, frame: true, title: ‘文件上传‘, bodyPadding: ‘10 10 0‘, defaults: { anchor: ‘100%‘, allowBlank: false, msgTarget: ‘side‘, labelWidth: 80 }, items: [{ xtype: ‘textfield‘, fieldLabel: ‘样品编号‘, id:‘finfo‘, name:‘finfo‘ },{ xtype: ‘container‘, layout: ‘hbox‘, items: [{ xtype: ‘textfield‘, fieldLabel: ‘当前经度‘, id:‘flongitude‘, name:‘flongitude‘, msgTarget: ‘side‘, allowBlank: false, labelWidth: 80 }, { xtype: ‘textfield‘, fieldLabel: ‘当前纬度‘, id:‘flatitude‘, name:‘flatitude‘, msgTarget: ‘side‘, allowBlank: false, labelWidth: 80 }] },{ xtype : ‘textfield‘, fieldLabel : ‘上传时间‘, id : ‘ftime‘, name : ‘ftime‘, // yyyy-MM-dd HH:mm:ss value : Ext.Date.format(new Date(date.getFullYear(),date.getMonth(),date.getDate(), date.getHours(),date.getMinutes(),date.getSeconds()), ext_dateFormat), listeners : { ‘focus‘ : function() { WdatePicker({ dateFmt : dateFormat }); } } },{ xtype: ‘filefield‘, id: ‘fiupload‘, emptyText: ‘请点击右边按钮选择文件!‘, fieldLabel: ‘选择文件‘, name: ‘fiupload‘, buttonText: ‘浏览文件‘, buttonConfig: { iconCls: ‘upload-icon‘ } }], buttons: [{ text: ‘保存文件‘, handler: function(){ var fiform = this.up(‘form‘).getForm(); if(fiform.isValid()){ fiform.submit({ type : ‘ajax‘, url: ‘files/addData.action‘, method : "POST", waitMsg: ‘ 正在上传,请稍候...‘, success: function(form, action) { Ext.Msg.alert(‘Success‘,‘文件上传成功!‘); }, failure:function(form, action) { Ext.Msg.alert("Failure","文件上传失败"); } }); } } },{ text: ‘重新上传‘, handler: function() { this.up(‘form‘).getForm().reset(); } }] }); });
后台处理核心类方法:
private static final int BUFFER_SIZE = 16 * 1024; public String addData() throws Exception { Timestamp ts = new Timestamp(System.currentTimeMillis()); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");// 设置日期格式 ts = Timestamp.valueOf(this.ftime); System.out.println(ts); String nowtime = df.format(new Date()); System.out.println("uploadFileName = " + this.fiuploadFileName); System.out.println("uploadContentType = " + this.fiuploadContentType); System.out.println(nowtime); // upload -- wapps 下面的文件夹,用来存放图片 String toSrc = ServletActionContext.getServletContext().getRealPath( "upload") + "/" + nowtime + getFileExp(this.fiuploadFileName); // 使用時間戳作為文件名 String toFilename = nowtime + getFileExp(this.fiuploadFileName); String toSrcPath = "./upload/" + toFilename; String toinfo = this.finfo; Double tolongitude = Double.parseDouble(this.flongitude); Double tolatitude = Double.parseDouble(this.flatitude); System.out.println("原文件名 : " + this.fiuploadFileName); System.out.println("文件描述 : " + toinfo); System.out.println("存放路径: " + toSrcPath); System.out.println("存放文件名: " + toFilename); System.out.println("当前经度 : " + tolongitude); System.out.println("当前维度 : " + tolatitude); File toFile = new File(toSrc); writeFile(this.fiupload, toFile); Files files = new Files(ts, toFilename, toSrcPath, toinfo, tolatitude, tolongitude); String result = filesService.addData(files); System.out.println(result); success = true; return SUCCESS; } private static void writeFile(File src, File dst) { System.out.println(" == 文件写入 == "); try { InputStream in = null; OutputStream out = null; try { in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE); out = new BufferedOutputStream(new FileOutputStream(dst), BUFFER_SIZE); byte[] buffer = new byte[BUFFER_SIZE]; while (in.read(buffer) > 0) { out.write(buffer); } } finally { if (null != in) { in.close(); } if (null != out) { out.close(); } } } catch (Exception e) { e.printStackTrace(); } System.out.println(" == 写入成功! == "); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。