`
除了你无可取代
  • 浏览: 148095 次
  • 性别: Icon_minigender_1
  • 来自: 悲鸣洞穴
社区版块
存档分类
最新评论

strtus2 上传下载 ajaxfileupload.js ajax刷新

 
阅读更多
//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组件实现图片上传预览(完整版)

    在本文中,我们将详细介绍如何使用Struts 2和AjaxFileUpload组件来实现在Web应用程序中进行图片的上传与预览。 一、Struts 2 框架简介 Struts 2是一个基于MVC设计模式的Action驱动的框架,它提供了强大的控制器层,...

    ajaxFileUpload_Struts2_json

    在IT行业中,AjaxFileUpload与Struts2框架的结合,特别是在处理JSON响应方面,是一种常见的文件上传技术。这里我们深入探讨这个主题。 首先,`ajaxFileUpload` 是一个JavaScript库,它允许用户在不刷新整个页面的...

    WebUploader无刷新Ajax上传文件实例(Java Struts2版)

    《下载别人,低分提供》----------通过这几天对WebUploader控件的研究,终于有了一些收获,特意开发了一个完整的上传功能,包括前后端对上传文件的过滤校验,以及上传前的新增及移除文件。另外上传类中还有一个通用...

    struts2异步上传

    Struts2是一个非常流行的... Struts2异步上传结合了Struts2框架、jQuery、Ajax、JSON插件和文件处理策略,为用户提供了无刷新的文件上传体验。理解并熟练掌握这些组件和技术,对于开发高效、安全的Web应用至关重要。

    完美SS2H+ajaxfileupload异步上传多个附件、删除

    具体来说,它结合了Spring Security(SS)和Struts2 (SH)两个框架,并利用ajaxfileupload.js这个JavaScript库来实现异步(即无刷新)的多文件上传和删除功能。以下将详细介绍这一技术方案的关键知识点: 1. **...

    struts2下利用jquery、ajaxfileupload实现无刷新上传文件

    在"struts2下利用jquery、ajaxfileupload实现无刷新上传文件"这个主题中,我们将探讨如何将这三者结合,创建一个高效的文件上传系统。 首先,要实现无刷新上传,我们需要在客户端使用jQuery和AJAXFileUpload插件。...

    Struts2+ajax+json异步上传图片回显

    在实际开发中,我们可能会用到一些第三方库,比如`ajaxfileupload.js`,这是一个专门用于文件上传的JavaScript库,它简化了Ajax上传的操作,提供了一些回调函数,方便我们在上传过程中处理进度、错误等问题。...

    AjaxFileUpload Struts2 多文件上传

    本篇文章将深入讲解如何利用AjaxFileUpload与Struts2实现多文件上传,并结合jQuery进行前端交互。 首先,我们需要在项目中引入必要的库。Struts2提供了struts2-jquery-plugin,这是一个基于jQuery的插件,包含了...

    ajaxFileUpload+struts2实现多文件上传(源码)

    首先,`ajaxFileUpload`是一个基于JavaScript的插件,它允许异步文件上传,利用Ajax技术实现与服务器端的数据交换,这样用户在上传文件时不会感到页面的刷新,提高了交互性。该插件通常与jQuery库一起使用,因为它...

    j​q​u​e​r​y​ ​i​m​g​a​r​e​a​s​e​l​e​c​t​ + ajaxfileupload + struts2实现图片的异步上传裁剪

    其次,ajaxfileupload.js是一个轻量级的文件上传组件,它是基于jQuery的Ajax技术实现的,可以实现在不刷新页面的情况下进行文件上传。用户选择图片后,通过AjaxFileUpload发送文件到服务器,返回结果通常包含文件...

    jquery 插件ajaxfileupload与struts2结合 实现异步上传图片

    首先,我们要了解AjaxFileUpload是jQuery的一个插件,它通过Ajax技术实现了文件的无刷新上传。AjaxFileUpload的核心在于利用HTML5的FormData对象和XMLHttpRequest Level 2的特性,使得浏览器可以发送二进制数据到...

    struts jquery 上传

    在本例中,我们使用了`ajaxfileupload.js`,这是一个jQuery插件,它扩展了jQuery的Ajax功能,支持文件上传。以下是如何在HTML页面中使用这个插件的示例: ```html &lt;!DOCTYPE html&gt; &lt;script src="jquery.min.js"&gt;...

    struts2的上传和下载功能

    Struts2是一个流行的Java Web...总之,Struts2的文件上传和下载功能涉及到后端的Java处理、前端的JavaScript交互和Struts2框架的配置。理解这些组件的工作原理和协作方式,对于开发高效、健壮的Web应用程序至关重要。

    ajaxfileupload

    【标题】:“AjaxFileUpload”是一个专为Struts2框架设计的Ajax上传组件,它旨在提供一种优雅且功能丰富的文件上传体验。 【描述】:在Web开发中,传统的表单提交方式往往会导致页面刷新,用户体验不佳。随着Ajax...

    jsp Ajax图片上传

    - `upload.rar`、`Ajax%2Bupload.rar`、`ajaxfileupload.rar`、`FileUpload_jsp.rar`、`jsp无刷新上传.rar` 都是关于不同方式的图片上传实现,可能包含了不同的技术栈和实现策略。 - `AJAX_Sample_Codes.zip` 可能是...

    jquery中的ajax异步上传

    ajaxfileupload.js是一个用于实现ajax异步上传的JavaScript文件,它封装了ajax异步上传的逻辑,使得开发者可以更方便地使用ajax异步上传功能。在使用ajaxfileupload.js时,需要将其引入到页面中。 知识点四:...

    AjaxFileUpload结合Struts2实现多文件上传(动态添加文件上传框)

    AjaxFileUpload是一个用于实现文件上传的JavaScript插件,它允许用户在网页上轻松地上传文件,并支持异步上传文件而不刷新页面。结合Struts2框架,开发者可以在MVC模式中通过Action类处理文件上传的业务逻辑。 在...

    ajax上传组件带进度条

    **Ajax上传组件带进度条**是一种在Web应用中实现文件上传功能的方式,它结合了Ajax技术,能够在不刷新整个页面的情况下实现文件的异步上传,并且提供了可视化的进度条显示,提高了用户体验。这个组件是基于Struts2...

    jquery ajaxfileupload异步上传插件

    在本文中,我们将探讨如何使用jQuery的ajaxfileupload插件实现异步文件上传,并结合Struts2框架进行处理。这个插件提供了一种方便的方法,允许用户在不刷新页面的情况下上传文件,提升用户体验。 首先,要使用...

    jquery异步上传

    为了解决这个问题,jQuery提供了一种异步上传(Ajax Upload)的方式,可以在不刷新页面的情况下实现文件上传,提升用户体验。 **jQuery与Struts结合** jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、...

Global site tag (gtag.js) - Google Analytics