核心提示:所需jar包ext界面{xtype : button,cls : btn-color,text : 模板下载,width : 58,handler : downLoad},做一个隐形表单将其提交fun...
所需jar包
ext界面
{ xtype : 'button', cls : 'btn-color', text : "模板下载", width : 58, handler : downLoad }, 做一个隐形表单将其提交 function downLoad() { download_form.submit(); } //表单
struts2的配置//mime类型 因为要导出xls类型的application/vnd.ms-excel //一个获取流的get方法downLoadFile //对应的是下载文件的名称,在类中要有其getset方法attachment;filename="${fileName}" //写入大小1024
//后台java private String fileName; private String inputPath; private InputStream DownLoadFile; private File excelFile; /** * 下载excel文件 * * @return */ public String excute() { String fName = getRequest().getParameter("fName"); if (StringUtil.isEmpty(fName)) { System.out.println("文件不存在"); success = false; return SUCCESS; } success = true; //从前台获取文件名称,set进去 setFileName(fName); return SUCCESS; } /** * 获取指定位置文件流 * * @return */ public InputStream getDownLoadFile() { return ServletActionContext.getServletContext().getResourceAsStream("/fireFox/" + fileName); }
文件上传
//上传按钮 { xtype:'button', cls : 'btn-color', text : "导入", width : 58, handler: fileUp }, //上传弹框 //导入文件 function fileUp(){ var upPanel = Ext.create('Ext.form.Panel',{ title:'', // width:600, bodyPadding:10, // height:400, items:[{ xtype:'textfield', allowBlank:false, fieldLabel:'选择文件', inputType:'file', //这里的name要和下面的fileName获取的name属性要一样 name:'excelFile' }], buttons:[{ text:'上传', margin:'1 50 3 10', handler:function(){ var form = this.up('form').getForm(); var fileName = form.findField('excelFile').getValue(); if(fileName==null||fileName==undefined||fileName==""){ form.reset(); Ext.Msg.alert("注意","请选择Excel文件!"); return; } /* var type = fileName.substring(fileName.indexOf("."),fileName.length); if(Ext.isEmpty(type)||type!=".xls"){ Ext.Msg.alert("注意","请选择后缀为.xls的文件!"); form.reset(); return; } */ if(form.isValid()){ form.submit({ url:'pub/pob/upload.action', params : {fileName : fileName}, method:'POST', waitTitle:'请稍等', waitMsg:'正在上传,请稍等...', success:function(fp,o){ Ext.Msg.alert('信息','文件上传成功'); upWin.close(); }, failure:function(fp,o){ Ext.Msg.alert('警告','连接失败'); upWin.close(); } }); } } }] }); upWin = Ext.create('Ext.window.Window',{ width:400, height:120, title:'文件上传', modal:true, layout:'fit', items:[upPanel] }).show(); }
struts2的配置文件
text/html
后台java代码
/** * 上传 * * @return * @throws Exception */ public String upload() throws Exception { //这里的fileName和前台的fileName要一样 String fileName = getRequest().getParameter("fileName"); if(StringUtil.isEmpty(fileName)){ return SUCCESS; } String excelPath = "upFile\\" + fileName; String upPath = getSession().getServletContext().getRealPath("/") + excelPath; if (excelFile.isFile()) { BufferedInputStream bis = new BufferedInputStream(new FileInputStream(excelFile)); BufferedOutputStream bos = null; try { bos = new BufferedOutputStream(new FileOutputStream(upPath)); byte[] buff = new byte[8192]; for (int len = -1; (len = bis.read(buff)) != -1;) { bos.write(buff, 0, len); } bos.flush(); } catch (Exception e) { e.printStackTrace(); returnMsg = "文件上传失败"; HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); success = false; return SUCCESS; } finally { if (bis != null) { try { bis.close(); } catch (Exception e2) { e2.printStackTrace(); } } if (bos != null) { try { bos.close(); } catch (Exception e2) { e2.printStackTrace(); } } } } List> BranchList = parseExcel(excelPath); boolean flag = optBranch(BranchList); returnMsg = "文件上传成功"; success = true; HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); return SUCCESS; }