html代码:
<FORM name="frmPostSC" id="frmPostSC" method="Post" action="<%=request.getContextPath()%>/Ga-Sy/ZaJcxxDaxxDjAction.do?method=ExeclReader" enctype="multipart/form-data" > <fieldset style = "width: 98%;text-align:center;"><legend>导入</legend> <DIV id=infor style="FONT-SIZE: 11px; WIDTH: 100%; COLOR: red; FONT-FAMILY: arial; POSITION: relative; HEIGHT: 14px; TEXT-ALIGN: center"></DIV> <INPUT type="file" name="cmdExecl" style="width:300px;" id="cmdExecl" class='Edit'"> <INPUT type="button" name="cmdExeclReader" id="cmdExeclReader" class="Button" value="开始导入" onclick="doExeclReaderSC();"> </fieldset> </FORM>
JS代码:
<script type="text/javascript" src="<%=request.getContextPath()%>/js/JQuery/jquery-1.4.4.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/js/JQuery/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="<%=request.getContextPath()%>/js/JQuery/jquery.form.js"></script>
function doExeclReaderSC(){ unBtns(["cmdExeclReader"]); $("#frmPostSC").ajaxSubmit({ target:"#infor", type: "post", dataType: "script", beforeSubmit: function(formData, jqForm, options){ document.getElementById("infor").innerText='正在装载数据,请耐心等待...'; return true; }, success:function (msg) { var arr=msg.split(","); document.getElementById("infor").innerText=arr[0]; doExeclReader(arr[1]); } }); //inBtns(["cmdExeclReader"]); } function doExeclReader(val) { // 把字符串中的所有 \ 替换成 / val = val.replace(/\\/g,"/") ; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } //unBtns(["cmdExeclReader"]); var url = strAction+"?method=doReader&URL="+encodeURI(encodeURI(val)); xmlhttp.onreadystatechange=CallBackFunction; xmlhttp.open("GET",url,true); xmlhttp.send(); } function CallBackFunction() { if(xmlhttp.readyState==1){ document.getElementById("infor").innerText="由于数据量较大,可能会一段时间,请耐心等待,千万不要操作页面,正在导入中,请稍候..."; } else if(xmlhttp.readyState==3){ document.getElementById("infor").innerText="由于数据量较大,可能会一段时间,请耐心等待,千万不要操作页面,正在导入中,请稍候..."; }else if(xmlhttp.readyState==0){ document.getElementById("infor").innerText=xmlhttp.responseText; } else if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("infor").innerText=xmlhttp.responseText; inBtns(["cmdExeclReader"]); } }
Action代码:
import java.io.File; import java.sql.Connection; import java.sql.Statement; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.dom4j.Document; import org.dom4j.Element; public class ZaJcxxDaxxDjAction extends BaseDispatchAction { public ActionForward ExeclReader(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("进入ExeclReader方法"); User user = (User)request.getSession().getAttribute(com.framework.Globals.USER_KEY); //RightManager.checkPower(request, response, ""); Connection conn = DBUtil.getConnection(); try { DiskFileItemFactory dfif = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(dfif); upload.setSizeMax(10 * 1024 * 1024); // 允许上传的最大值 request.setCharacterEncoding("GBK"); List list = upload.parseRequest(request); // 开始解析request对象中的表单数据 if (list.size() >= 1) { FileItem item = (FileItem) list.get(0); String name = item.getName(); name = name.substring(name.lastIndexOf("\\") + 1); String path = "tempFile"; ServletContext ctx = this.getServlet().getServletContext(); path = ctx.getRealPath(path); File file = new File(path); if(!file.exists()){ System.out.println("创建文件夹"); file.mkdir(); } System.out.println(path); System.out.println(name); //将文件放到指定的地方 item.write(new File(path, name)); System.out.println("数据装载完成...") ; Pub.writeMessage(response,"数据装载完成...!,"+path+"\\"+name); } } catch (Exception e) { throw new Exception("file upload error!", e); } return null; } public ActionForward doReader(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("进入doReader方法"); User user = (User)request.getSession().getAttribute(com.framework.Globals.USER_KEY); String url=java.net.URLDecoder.decode(request.getParameter("URL"), "UTF-8"); Connection conn = DBUtil.getConnection(); Statement stmt = conn.createStatement(); Workbook workbook = null; Sheet sheet =null; Cell cell = null; try { System.out.println(url); workbook = Workbook.getWorkbook(new File(url)); sheet= workbook.getSheet(0); int columnCount=sheet.getColumns(); int rowCount=sheet.getRows(); System.out.println("开始导入..."); for (int i = 2; i <rowCount; i++) { if("".equals(sheet.getCell(1, i).getContents())){ break; } String sql="insert into ZA_JCXX_DAXX_DJ (xh,AJH,DABT,DQBTPY,DAXZ,DAND,BGQX,GLDWDM,DALB,QZH,TBR,TBSJ,CXBS) values('"+com.common.SequenceUtil.getCommonSerivalNumber()+"'"; for (int j = 1; j <9; j++) {//注意,这里的两个参数,第一个是表示列的,第二才表示行 cell=sheet.getCell(j, i); //要根据单元格的类型分别做处理,否则格式化过的内容可能会不正确 sql=sql+",'"+cell.getContents()+"'"; if(j==2){ sql=sql+",'"+SpellCache.getInstance().getAspell(cell.getContents())+"'"; } } Date date=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); String sj=df.format(date); sql+=",'"+user.getAccount()+"',to_date('"+sj+"','yyyy-MM-dd'),'0')"; System.out.println(sql); stmt.execute(sql); sql=""; } System.out.println("完成导入..."); workbook.close(); stmt.close(); stmt = null; conn.commit(); Pub.writeMessage(response,"导入成功!"); }catch (Exception e) { Pub.writeMessage(response,"导入失败!"); conn.rollback(); stmt.close(); stmt = null; workbook.close(); e.printStackTrace(System.out); } return null; } }
相关推荐
本文将要介绍的是如何使用jQuery库中的ajaxSubmit()方法来异步上传图片文件,并保存表单数据的过程。ajaxSubmit()是jQuery的一个扩展方法,它属于jQuery Form插件的一部分,专门用于处理表单的异步提交。它支持文件...
使用`$.ajax`或`$("#formId").ajaxSubmit`(来自`jquery.form.js`)来实现异步上传。这里假设有一个名为`upload.jsp`的后端页面处理图片上传: ```javascript $("#uploadImage").change(function() { var formData...
综上所述,AjaxSubmit结合jQuery Form Plugin,通过异步提交表单和局部刷新技术,可以在不中断用户界面的情况下实现文件上传和动态更新内容,极大地提高了Web应用的用户体验。同时,开发者需要注意处理可能出现的...
首先,我们需要理解jQuery中的`ajaxForm`或`ajaxSubmit`方法,这两个方法是jQuery Form Plugin的一部分,可以在异步方式下提交表单,包括文件上传。这里,`index.jsp`文件可能是我们的HTML页面,其中包含用于文件...
AjaxSubmit()方法是jQuery Form插件提供的一种功能强大的表单提交方式,它允许我们在异步提交表单时实现前后端交互的回调功能,从而避免页面刷新,提高用户体验。在实际应用中,比如文件上传、表单验证等场景,...
前端部分主要依赖于jQuery的ajaxSubmit方法,它能异步提交表单,确保页面在上传过程中保持无刷新状态。此外,示例还提供了三种不同样式的CSS文件(绿色、蓝色、银色),以供用户自定义上传按钮和进度条的外观。 在...
可以使用`$('form').ajaxSubmit(options)`方法来异步提交表单,避免页面刷新,提高用户体验。 2. **表单验证**: 虽然jQuery本身不包含内置的验证功能,但通过Form插件可以结合其他验证库(如jQuery Validation ...
本文将深入解析一个基于JSP与Servlet技术实现的文件上传实例,通过分析其代码结构与工作流程,帮助读者理解并掌握Java环境下文件上传的基本原理及实现方法。 #### 二、AJAX方式的文件上传 首先,我们关注的是采用...
前端可能需要jQuery的ajaxSubmit或其他类似方法来异步上传文件,提供更好的用户体验。 8. **jQuery**:jQuery是一个快速、简洁的JavaScript库,能简化HTML文档遍历、事件处理、动画和Ajax交互。在这个项目中,...
在使用jQuery进行网页开发时,有时会遇到这样一个问题:当你尝试使用`submit()`函数来提交表单时,浏览器会抛出一个错误:“f[s] is not a function”或“document.getElementByIdx_x(...).submit is not a function...
- **Ajax请求**:通过`XMLHttpRequest`或使用jQuery的`$.ajax()`或`$.post()`方法发送异步请求,将文件数据提交到服务器。 - **服务器端处理**:接收到文件后,保存图片并返回相应的确认信息。 - **前端响应**:根据...
3. **JQuery/Ajax库**:使用JQuery库发送Ajax请求,例如`$.ajax()`或`$.getJSON()`方法,与Struts2的Action进行通信。 一个简单的Struts2 Ajax实例包括以下几个步骤: 1. **创建Action类**:编写一个处理Ajax请求...
在我们的例子中,我们使用jQuery库来简化这个过程,因为jQuery提供了一个方便的$.ajax方法来处理Ajax请求。 以下是一个简单的Ajax表单提交函数`ajaxSubmit`: ```javascript function ajaxSubmit(url, frm, fn) { ...