//js代码 jQuery.noConflict(); //jquery版本兼容 function ajaxFileUpload() { var fileVal = jQuery("#file").attr("value"); var fileValArr = fileVal.split("."); if (fileValArr[fileValArr.length - 1] != 'xls') { alert("请上传excel文件!"); return false; } jQuery("#loading").ajaxStart(function() { jQuery(this).show(); $("#note").html("正在上传..."); })// 开始上传文件时显示一个图片 .ajaxComplete(function() { jQuery(this).hide(); });// 文件上传完成将图片隐藏起来 jQuery.ajaxFileUpload({ url : '../../examTarget/uploadFile.action',// 用于文件上传的服务器端请求地址 secureuri : false,// 一般设置为false 这个为空ajaxfileupload中的iframe不显示 fileElementId : 'file',// 文件上传空间的id属性 <input type="file" id="file" name="file" /> data:{'examActivityRowid':examActivityRowid}, dataType : 'json',// 返回值类型 一般设置为json success : function(data) // 服务器成功响应处理函数 { // 这里放入返回成功后需要处理的响应data是返回的数据 if(data && data.fileName!=""){ $("#note").html("上传成功,正在解析..."); } }, error : function(data)// 服务器响应失败处理函数 { // 服务器响应失败的处理信息。 $("#note").html("上传成功失败!"); } }) return false; }
java struts2后台处理
public void uploadFile() throws Exception { HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("utf-8"); InputStream is = null; OutputStream os = null; try { checkUserId(); String path = Util.getBootProps().getProperty( PropertiesValue.MARKT_EXCEL_TEMPLATE_PATH); is = new FileInputStream(file);// 输入流 fileName = System.currentTimeMillis() + ".xls"; File toFile = new File(path, fileName); os = new FileOutputStream(toFile); // 设置缓存 byte[] buffer = new byte[1024]; int length = 0; // 读取myFile文件输出到toFile文件中 while ((length = is.read(buffer)) > 0) { os.write(buffer, 0, length); } } catch (Exception e) { fileName = ""; } finally { try { // 关闭输入流 if (null != is) { is.close(); } // 关闭输出流 if (null != os) { os.close(); } } catch (IOException e) { fileName = ""; } } ServletActionContext.getResponse().getWriter().write( "{fileName:\"" + fileName + "\"}"); ServletActionContext.getResponse().getWriter().flush(); ServletActionContext.getResponse().getWriter().close(); }
xml配置
<action name="uploadFile" class="examTaskKpiTagertAction" method="uploadFile"> </action>
=============================================上传功能==================
jxl的 excel生成 直接下载
import jxl.Workbook; import jxl.format.UnderlineStyle; import jxl.write.DateFormat; import jxl.write.DateTime; import jxl.write.Label; import jxl.write.NumberFormat; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook;
public void download() throws Exception { HttpServletResponse response = ServletActionContext.getResponse(); response.reset(); //设置响应头为二进制流 response.setContentType( "application/x-msdownload;charset=utf-8"); response.setCharacterEncoding("utf-8"); downloadFileName = "目标值导入模板.xls"; ServletActionContext.getResponse().setHeader( "Content-Disposition", "attachment; filename=" + new String(downloadFileName.getBytes(),"ISO-8859-1")); WritableWorkbook wb = Workbook.createWorkbook(ServletActionContext.getResponse().getOutputStream()); // 创建Excel工作表 WritableSheet ws = wb.createSheet("sheet1", 0); // 添加Label对象 Label label1 = new Label(0, 0, "测试创建Excel"); ws.addCell(label1); // 添加带有字型Formatting的对象 WritableFont wf = new WritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true); WritableCellFormat wcfF = new WritableCellFormat(wf); Label labelCF = new Label(1, 0, "This is a Label Cell", wcfF); ws.addCell(labelCF); // 添加带有字体颜色Formatting的对象 WritableFont wfc = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.RED); WritableCellFormat wcfFC = new WritableCellFormat(wfc); Label labelCFC = new Label(1, 0, "This is a Label Cell", wcfFC); ws.addCell(labelCFC); // 添加Number对象 jxl.write.Number labelN = new jxl.write.Number(0, 1, 3.1415926); ws.addCell(labelN); // 添加带有formatting的 Number对象 NumberFormat nf = new NumberFormat("#.##"); WritableCellFormat wcfN = new WritableCellFormat(nf); jxl.write.Number labelNF = new jxl.write.Number(1, 1, 3.1415926, wcfN); ws.addCell(labelNF); // 添加Boolean对象 jxl.write.Boolean labelB = new jxl.write.Boolean(0, 2, false); ws.addCell(labelB); // 添加DateTime对象 DateTime labelDT = new DateTime(0, 3, new java.util.Date()); ws.addCell(labelDT); // 添加带有formatting的DateFormat对象 DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss"); WritableCellFormat wcfDF = new WritableCellFormat(df); DateTime labelDTF = new DateTime(1, 3, new java.util.Date(), wcfDF); ws.addCell(labelDTF); Label label31 = new Label(3, 1, "0011x"); Label label32 = new Label(3, 2, "0012x"); Label label33 = new Label(3, 3, "0013x"); ws.addCell(label31); ws.addCell(label32); ws.addCell(label33); ws.setColumnView(3, 0); wb.write(); // 写入Exel工作表 wb.close(); // 关闭Excel工作薄对象 }
<action name="download" class="examTaskKpiTagertAction" method="download"> <result name="success" type="stream"> </result> </action>
相关推荐
在本文中,我们将详细介绍如何使用Struts 2和AjaxFileUpload组件来实现在Web应用程序中进行图片的上传与预览。 一、Struts 2 框架简介 Struts 2是一个基于MVC设计模式的Action驱动的框架,它提供了强大的控制器层,...
在IT行业中,AjaxFileUpload与Struts2框架的结合,特别是在处理JSON响应方面,是一种常见的文件上传技术。这里我们深入探讨这个主题。 首先,`ajaxFileUpload` 是一个JavaScript库,它允许用户在不刷新整个页面的...
《下载别人,低分提供》----------通过这几天对WebUploader控件的研究,终于有了一些收获,特意开发了一个完整的上传功能,包括前后端对上传文件的过滤校验,以及上传前的新增及移除文件。另外上传类中还有一个通用...
Struts2是一个非常流行的... Struts2异步上传结合了Struts2框架、jQuery、Ajax、JSON插件和文件处理策略,为用户提供了无刷新的文件上传体验。理解并熟练掌握这些组件和技术,对于开发高效、安全的Web应用至关重要。
具体来说,它结合了Spring Security(SS)和Struts2 (SH)两个框架,并利用ajaxfileupload.js这个JavaScript库来实现异步(即无刷新)的多文件上传和删除功能。以下将详细介绍这一技术方案的关键知识点: 1. **...
在"struts2下利用jquery、ajaxfileupload实现无刷新上传文件"这个主题中,我们将探讨如何将这三者结合,创建一个高效的文件上传系统。 首先,要实现无刷新上传,我们需要在客户端使用jQuery和AJAXFileUpload插件。...
在实际开发中,我们可能会用到一些第三方库,比如`ajaxfileupload.js`,这是一个专门用于文件上传的JavaScript库,它简化了Ajax上传的操作,提供了一些回调函数,方便我们在上传过程中处理进度、错误等问题。...
本篇文章将深入讲解如何利用AjaxFileUpload与Struts2实现多文件上传,并结合jQuery进行前端交互。 首先,我们需要在项目中引入必要的库。Struts2提供了struts2-jquery-plugin,这是一个基于jQuery的插件,包含了...
首先,`ajaxFileUpload`是一个基于JavaScript的插件,它允许异步文件上传,利用Ajax技术实现与服务器端的数据交换,这样用户在上传文件时不会感到页面的刷新,提高了交互性。该插件通常与jQuery库一起使用,因为它...
其次,ajaxfileupload.js是一个轻量级的文件上传组件,它是基于jQuery的Ajax技术实现的,可以实现在不刷新页面的情况下进行文件上传。用户选择图片后,通过AjaxFileUpload发送文件到服务器,返回结果通常包含文件...
首先,我们要了解AjaxFileUpload是jQuery的一个插件,它通过Ajax技术实现了文件的无刷新上传。AjaxFileUpload的核心在于利用HTML5的FormData对象和XMLHttpRequest Level 2的特性,使得浏览器可以发送二进制数据到...
在本例中,我们使用了`ajaxfileupload.js`,这是一个jQuery插件,它扩展了jQuery的Ajax功能,支持文件上传。以下是如何在HTML页面中使用这个插件的示例: ```html <!DOCTYPE html> <script src="jquery.min.js">...
Struts2是一个流行的Java Web...总之,Struts2的文件上传和下载功能涉及到后端的Java处理、前端的JavaScript交互和Struts2框架的配置。理解这些组件的工作原理和协作方式,对于开发高效、健壮的Web应用程序至关重要。
【标题】:“AjaxFileUpload”是一个专为Struts2框架设计的Ajax上传组件,它旨在提供一种优雅且功能丰富的文件上传体验。 【描述】:在Web开发中,传统的表单提交方式往往会导致页面刷新,用户体验不佳。随着Ajax...
- `upload.rar`、`Ajax%2Bupload.rar`、`ajaxfileupload.rar`、`FileUpload_jsp.rar`、`jsp无刷新上传.rar` 都是关于不同方式的图片上传实现,可能包含了不同的技术栈和实现策略。 - `AJAX_Sample_Codes.zip` 可能是...
ajaxfileupload.js是一个用于实现ajax异步上传的JavaScript文件,它封装了ajax异步上传的逻辑,使得开发者可以更方便地使用ajax异步上传功能。在使用ajaxfileupload.js时,需要将其引入到页面中。 知识点四:...
AjaxFileUpload是一个用于实现文件上传的JavaScript插件,它允许用户在网页上轻松地上传文件,并支持异步上传文件而不刷新页面。结合Struts2框架,开发者可以在MVC模式中通过Action类处理文件上传的业务逻辑。 在...
**Ajax上传组件带进度条**是一种在Web应用中实现文件上传功能的方式,它结合了Ajax技术,能够在不刷新整个页面的情况下实现文件的异步上传,并且提供了可视化的进度条显示,提高了用户体验。这个组件是基于Struts2...
在本文中,我们将探讨如何使用jQuery的ajaxfileupload插件实现异步文件上传,并结合Struts2框架进行处理。这个插件提供了一种方便的方法,允许用户在不刷新页面的情况下上传文件,提升用户体验。 首先,要使用...
为了解决这个问题,jQuery提供了一种异步上传(Ajax Upload)的方式,可以在不刷新页面的情况下实现文件上传,提升用户体验。 **jQuery与Struts结合** jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、...