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>

 

你可能感兴趣的:(ajaxFileUpload)