欢迎来到站长教程网!
兔子CDN

AJAX

当前位置:主页 > 网络编程 > AJAX >

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

时间:2020-08-18|栏目:AJAX|点击:

本文实例讲述了jsp+ajax实现无刷新上传文件的方法。分享给大家供大家参考,具体如下:

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

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

思想:由于安全问题,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"  border="1" cellspacing="0" cellpadding="0">
    <tr>
     <th align="center"  colspan="13" align="center" bgcolor="#006699">条目列表</th>
    </tr>
    <tr>
     <td   align="center" bgcolor="#009999">
      <input id="AllORNoall" type="checkbox"><label for="AllORNoall">全选</label>
      <input type="button" id="reserse" value="反选" />
     </td>
     <td   align="center" bgcolor="#009999">站点名称</td>
     <td   align="center" bgcolor="#009999">站点别名</td>
     <td   align="center" bgcolor="#009999">归类</td>
     <td   align="center" bgcolor="#009999">公司地址</td>
     <td   align="center" bgcolor="#009999">文字链接</td>
     <td   align="center" bgcolor="#009999">图片链接</td>
     <td   align="center" bgcolor="#009999">描述</td>
     <td   align="center" bgcolor="#009999">有效开始时间</td>
     <td   align="center" bgcolor="#009999">有效结束时间</td>
     <td   align="center" bgcolor="#009999">电话</td>
     <td   align="center" bgcolor="#009999">位置排序</td>
     <td   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  align="center" class="urlid_td"><input type="checkbox" name="urlid" class="id_select urlid" value=<%= urlId%> /></td>
     <td  align="center" class="edit sitename"><%=siteName %></td>
     <td  align="center" class="edit alias"><%=alias %></td>
     <td  align="center" class="edit categoryName"><%=categoryName%></td>
     <td  align="center" class="edit address"><%=address %></td>
     <td  align="center" class="edit texturl"><%=texturl%></td>
     <td  align="center" class="edit_img imageurl"><img src='<%=imageurl%>' class='logo' title='<%=imageurl%>'/></td>
     <td  align="center" class="edit description"><%=description%></td>
     <td  align="center" class="edit validbegintime"><%=validbegintime == null || "".equals(validbegintime)? "--:--" : TimeUtil.date2Str(validbegintime)%></td>
     <td  align="center" class="edit validendtime"><%=validendtime == null || "".equals(validendtime)? "--:--" : TimeUtil.date2Str(validendtime)%></td>
     <td  align="center" class="edit mobile"><%=mobile%></td>
     <td  align="center" class="edit sequence"><%=sequence%></td>
     <td  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>

上一篇:Ajax()方法如何与后台交互

栏    目:AJAX

下一篇:Ajax简单的异步交互及Ajax原生编写

本文标题:jsp+ajax实现无刷新上传文件的方法

本文地址:www.dtcnnet.com/AJAX/13716.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:584415406 | 邮箱:584415406#qq.com(#换成@)

Copyright © 2015-2020 小白站长网 版权所有 苏ICP备20040415号