首页 > 开发 > AJAX > 正文

jsp+ajax实现无刷新上传文件的方法

2024-09-01 08:28:10
字体:
来源:转载
供稿:网友

本文实例讲述了jsp+ajax实现无刷新上传文件的方法。,具体如下:

列表页:selectaddress.jsp
js页:ajax_edit.js
jsp处理页:editaddress.jsp
上传工具类:UploadUtil.java

思想:由于安全问题,javascript操纵不了文件, 导致ajax不能动态上传文件,所以选择了iframe,

列表页把form表单提交到一个隐式的iframe里面,设置表单的属性 代码如下:enctype='multipart/form-data'  target='hidden_frame'
然后,处理页处理后返回 代码如下:out.println('<script>parent.callback(" 返回值 ")</script>');

列表页执行回调函数!

selectaddress.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="com.wap3.navigater.service.*" %><%@ page import="com.wap3.navigater.dao.*" %><%@ page import="com.wap3.navigater.pojo.*" %><%@ page import="com.wap3.navigater.util.*" %><%@ page import="java.util.*" %><%@ page import="java.text.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script type="text/javascript" src="../js/jquery.js"></script><script type="text/javascript" src="../js/ajax_edit.js"></script><script type="text/javascript" src="../js/jquery.jclock.js"></script><script type="text/javascript" src="../js/common.js"></script><script type="text/javascript" src="../js/jquery.form.js"></script><script type="text/javascript" src="../js/fileTypeJudge.js"></script><script type="text/javascript" src="../js/jquery.datepick.js"></script><script type="text/javascript" src="../js/jquery.datepick-zh-CN.js"></script><link media=all href="../css/common.css" type=text/css rel=stylesheet><title>Insert title here</title><style type="text/css"> @import "inc/jquery.datepick.css";</style><script type="text/javascript">var $imgthis; $(function(){  var oldValue;  $(".package_list .edit").bind("dblclick",function(){   oldValue = $(this).text();   $(this).ajax_edit("editaddress.jsp",oldValue);  });  $(".package_list .edit_img").bind("dblclick",function(){ //   oldValue = $(this).html();   $imgthis = $(this);   $(this).parents("tr.package_list").siblings(".package_list").find(":input.cancel").trigger("click");   $(this).ajax_edit_img("editaddress.jsp",oldValue);  });  $(".package_list .edit :input[type!=file]:visible").live("blur",function(){   $(this).ajax_handle("editaddress.jsp?action=edit",oldValue);  });  $("#editcategoryName").live("change",function(){   $(this).ajax_handle("editaddress.jsp?action=edit",oldValue);  });  $("#del").click( function () {   if($(":checkbox.urlid:checked").size()>0){    var result = confirm("不可恢复的操作:确定要吗?"+ '/n' +"提示:如果删除大类会删除大类及下面的子类!!!");    if (result) {     var url = location.href;     alert(url);     return ;     $(".main_table").wrap("<form id='selectAddressForm' action='selectaddress.jsp?action=del' method='post'></form>");     $("#selectAddressForm").submit();    }   }else{    alert("请选择要删除的项目!");    return false;   }  }); }); function callback(msg) //处理JSP回调 过来的参数 {  $imgthis.html("<img class='logo' src='"+msg+"' title='"+msg+"' />"); }</script></head><body> <%  String action = ParameterUtil.getStringParameter(request,"action","");  FriendurlDao friendurlDao = new IbatisFriendurlDao();  if("del".equals(action)){   int[] urlids = ParameterUtil.getIntArrayParams(request,"urlid");   for(int urlid : urlids){    friendurlDao.deleteFriendurlByP(urlid);   }  }  String navigaterPage = request.getRequestURL().toString();  if(request.getQueryString()!= null){   navigaterPage += "?"+request.getQueryString();  }  int categoryId = ParameterUtil.getIntParameter(request,"categoryId",0);  if(categoryId == 0){   response.sendRedirect("selectcategory.jsp");   return;  }  int pageSize = ParameterUtil.getIntParameter(request,"pageSize",10);  int pageNo = ParameterUtil.getIntParameter(request,"pageNo",1);  String orderBy = ParameterUtil.getStringParameter(request,"orderBy","sequence");  int ascOrDesc = ParameterUtil.getIntParameter(request,"ascOrDesc",0);  CategoryDao categoryDao = new IbatisCategoryDao();  Category category = categoryDao.selectCategoryByP(categoryId);  String categoryName = category.getCategoryName();  Friendurl friendurl = new Friendurl();  friendurl.setCategoryId(categoryId);  friendurl.addOrderBy(orderBy,ascOrDesc);  List<Friendurl> friendurlList = friendurlDao.selectFriendurlByE(friendurl);   //分页  int totallpage = (int) Math.ceil(((double) friendurlList .size() * 1.0D)/ (double) pageSize);  pageNo =pageNo <= 0 ? 1 : pageNo;  pageNo =pageNo > totallpage ? totallpage : pageNo;  DataPageUtil datePage = new DataPageUtil(friendurlList ,friendurlList .size(),pageSize, pageNo);  boolean hasPrerPage = datePage.hasPrevPage();  boolean hasNextPage= datePage.hasNextPage();  int curpageNo = datePage.getPageNo();  int pageCount = datePage.getPageCount();  friendurlList = DataPageUtil.subList(friendurlList, pageSize, pageNo);  if(friendurlList == null && friendurlList.size()<=0) {   out.println("没有您需要的数据");  }else{  %>  <%@include file="inc/header.jsp" %> <div id = "mainbox">  <div class = "c1">   <table class="main_table" width="100%" border="1" cellspacing="0" cellpadding="0">    <tr>     <th align="center" height="20" colspan="13" align="center" bgcolor="#006699">条目列表</th>    </tr>    <tr>     <td width="10%" height="20" align="center" bgcolor="#009999">      <input id="AllORNoall" type="checkbox"><label for="AllORNoall">全选</label>      <input type="button" id="reserse" value="反选" />     </td>     <td width="7%" height="20" align="center" bgcolor="#009999">站点名称</td>     <td width="7%" height="20" align="center" bgcolor="#009999">站点别名</td>     <td width="7%" height="20" align="center" bgcolor="#009999">归类</td>     <td width="7%" height="20" align="center" bgcolor="#009999">公司地址</td>     <td width="7%" height="20" align="center" bgcolor="#009999">文字链接</td>     <td width="7%" height="20" align="center" bgcolor="#009999">图片链接</td>     <td width="7%" height="20" align="center" bgcolor="#009999">描述</td>     <td width="7%" height="20" align="center" bgcolor="#009999">有效开始时间</td>     <td width="7%" height="20" align="center" bgcolor="#009999">有效结束时间</td>     <td width="7%" height="20" align="center" bgcolor="#009999">电话</td>     <td width="7%" height="20" align="center" bgcolor="#009999">位置排序</td>     <td width="7%" height="20" align="center" bgcolor="#009999">推荐序号</td>    </tr>    <%     for(Friendurl friendurlTemp:friendurlList) {      int urlId = friendurlTemp.getUrlid();      String siteName = friendurlTemp.getSitename();      String alias = friendurlTemp.getAlias();      String address = friendurlTemp.getAddress();      String texturl = friendurlTemp.getTexturl();      String imageurl = friendurlTemp.getImageurl();      String description = friendurlTemp.getDescription();      Date validbegintime = friendurlTemp.getValidbegintime();      Date validendtime = friendurlTemp.getValidendtime();      String mobile = friendurlTemp.getMobile();      int sequence = friendurlTemp.getSequence();      int filter = friendurlTemp.getFilter();     %>    <tr class="package_list">     <td height="20" align="center" class="urlid_td"><input type="checkbox" name="urlid" class="id_select urlid" value=<%= urlId%> /></td>     <td height="20" align="center" class="edit sitename"><%=siteName %></td>     <td height="20" align="center" class="edit alias"><%=alias %></td>     <td height="20" align="center" class="edit categoryName"><%=categoryName%></td>     <td height="20" align="center" class="edit address"><%=address %></td>     <td height="20" align="center" class="edit texturl"><%=texturl%></td>     <td height="20" align="center" class="edit_img imageurl"><img src='<%=imageurl%>' class='logo' title='<%=imageurl%>'/></td>     <td height="20" align="center" class="edit description"><%=description%></td>     <td height="20" align="center" class="edit validbegintime"><%=validbegintime == null || "".equals(validbegintime)? "--:--" : TimeUtil.date2Str(validbegintime)%></td>     <td height="20" align="center" class="edit validendtime"><%=validendtime == null || "".equals(validendtime)? "--:--" : TimeUtil.date2Str(validendtime)%></td>     <td height="20" align="center" class="edit mobile"><%=mobile%></td>     <td height="20" align="center" class="edit sequence"><%=sequence%></td>     <td height="20" align="center" class="edit filter"><%=filter%></td>    </tr>    <%     }     %>    <tr>     <td align="center"><input type="button" id="del" value="删除" /></td>     <td align="center" colspan = "12">提示:双击选框修改属性值</td>    </tr>   </table>  </div>  <%@ include file="inc/pagination.jsp"%> </div> <%  }  %><iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe></body></html>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表