ajaxFileUpload上传文件

html页面代码如下:

   <div style="" >
        <span>批量上传:</span>
        <span>
            <input type="file" id="importFile" name="importFile" />
            <button class="btn btn-success" type="button" οnclick="impExcel()">确认上传</button>
        </span>
    </div>


JS前台代码如下:

function impExcel(){
	var fileName = $("#importFile").val();
	
	if(fileName != "") {
		//获得选择的上传文件的后缀名的正则表达式
		var suffix = fileName.match(/\..{3,4}$/)[0].substring(1).toLowerCase();
		if(suffix == "xls" || suffix == "xlsx") { //&& suffix != "xlsx") {
			//alert("只能上传excel文件!");
			//return;
			alert(111);

			$.ajaxFileUpload({
				url:'/ODSMSPortlet/questionF/questionSysF!importExcel.action?random='+Math.random(),//用于文件上传的服务器端请求地址
				type: 'post',
				secureuri : false,//一般设置为false
				fileElementId : 'importFile',
				dataType : 'json',//返回值类型 一般设置为json
				success : function() //服务器成功响应处理函数
				{
					//alert("上传成功");
					self.location.href = "/ODSMSPortlet/questionF/questionSysF!toQueryLimitPerson.action?sysMenuId=102737";
				},
				error: function (data, status, e)//服务器响应失败处理函数
		           {
		           	//alert("上传失败");
		               self.location.href = "/ODSMSPortlet/questionF/questionSysF!toQueryLimitPerson.action?sysMenuId=102737";
		           }
				});
		}else{
			alert("只能上传excel文件!")
		}
		
	} else {
		alert("请选择要导入的文件!");
	}
}



后端使用structs处理如下:

	/**
	 * 导入Excel数据,批量添加到权限表
	 */
	public void importExcel(){
		setDataObject();
		try {
			IDataObject ido = this.getDataObject();
			MultiPartRequestWrapper multipartRequest =(MultiPartRequestWrapper)request;
			File file = multipartRequest.getFiles("importFile")[0]; //"importFile"为上文件ID
			FileInputStream inputStream = new FileInputStream(file);
			
		    HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
		    HSSFSheet sheet = workbook.getSheetAt(0);// 取出第一个工作表,索引是0
		    
		    int x = sheet.getLastRowNum();
            System.out.println(x);
		    String cellStr = null;// 单元格,最终按字符串处理  
		    for (int i = 1; i <= sheet.getLastRowNum(); i++) {  
		    	String staffId = "";
		    	String staffName = "";
		    	String limitId =""; 
		    	HSSFRow row = sheet.getRow(i);// 获取行对象  
	            if (row == null) { 
	            	break;
	            	//throw new Exception("行为空");
	            }
	            //暂时限定Excel必须满足一定的格式,例如:只有三列,且第一列为员工号,第二列为员工姓名,第三列为权限(0、1、2)
	            //根据约定的规则读取Excel中相应单元格对象并做插入处理	              
	            
	   		    for(int j = 0; j < row.getLastCellNum(); j++) {
	                 HSSFCell cell = row.getCell(j);// 获取单元格对象  
	                 if (cell == null) {// 单元格为空设置cellStr为空串  
	                    // cellStr = "";
	                	 throw new Exception("列为空");
	                 }else{
	                	 cell.setCellType(HSSFCell.CELL_TYPE_STRING);
	                 }
	                 cellStr = cell.getStringCellValue();
	                 //对前三列进行处理
	                 if(j==0){
		   				 staffId = cellStr;
		   			 }else if(j==1){
		   				 staffName = cellStr;
		   			 }else{
		   				limitId =cellStr;
		   			 }
	   			}
	   			 
	            System.out.println(staffId +"  "+staffName+" "+limitId);
	            ido.addInput("staffId", staffId);
				ido.addInput("staffName", staffName);
				ido.addInput("limitId", limitId);
			    dhlCommonService.insert("questionSysF.insertPerson", ido);
				 
			 }
		    
		    dto.setOutput("true");
		    this.flushDataObject(dto);

		} catch (Exception e) {
			e.printStackTrace();
			dto.setOutput("false");
			this.flushDataObject(dto);
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值