JQuery和Struts如何实现Ajax文件上传

发布时间:2021-07-14 10:50:47 作者:chen
来源:亿速云 阅读:181

这篇文章主要讲解了“JQuery和Struts如何实现Ajax文件上传”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JQuery和Struts如何实现Ajax文件上传”吧!

首先说下使用的框架和插件:

Struts1.3   jQuery1.3   ajaxupload.3.2.js(一个JQuery的插件,实现Ajax上传的效果)

COS(O’relly的一个性能很棒的上传组件)

JSP页面:

<%@ page language="java"  pageEncoding="UTF-8"%> <%@ include file="../../common/taglibs.jsp" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>    <script type="text/javascript" src="${basePath }/script/jquery.js"></script>    <script type="text/javascript" src="${basePath }/script/ajaxupload.3.2.js"></script>     <title>Ajax文件上传示例</title>     <style type="text/css">      #loading,ol{        font-size:14px;        display:none;        color:orange;        display:none;       }       ol{        display:block;       }      </style>  <script type="text/javascript">   $(function(){          new AjaxUpload("#fileButton",{      action:"${basePath}/file.do?method=upload",      autoSubmit:true,      name:"myfile",      onSubmit:function(file, extension){       if (extension && /^(pdf|jpg|png|jpeg|gif)$/.test(extension))       {        $("#loading").html('<img src="${basePath}/images/loading.gif">');        $("#loading").show();        $("#fileButton").attr("disabled","disabled");       }       else       {        $("#loading").html("你所选择的文件不受系统支持");        $("#loading").show();        return false;       }      },      onComplete:function(file, extension){       $("#loading").html("文件上传成功");       $("#loading").show();       $("#fileButton").removeAttr("disabled");      }     });               new Ajax_upload('#button3', {      action: '${basePath}/file.do?method=upload',      name: 'myfile',      autoSubmit:true,      onComplete : function(file, extension){       $('<li></li>').appendTo($('.files')).text(file);      }      });    });   </script>   </head>       <body>       <input type="button" value="请选择您的照片" id="fileButton"/>     <div id="loading"><img src="${basePath}/images/loading.gif"></div>     <hr/>          <form action="#" method="post">    <input id="button3" type="file" />   <p>上传成功的文件有:</p>   <ol class="files"></ol>   <p>    <input class="submit" type="submit" value="表单提交"/>     </p>   </form>    </body> </html> StrutsAction代码:package com.kay.crm.web;   import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;   import org.apache.struts.action.ActionForm;  import org.apache.struts.action.ActionForward;  import org.apache.struts.action.ActionMapping;  import org.apache.struts.actions.DispatchAction;  import org.springframework.stereotype.Controller;   import com.kay.common.util.CosUtil;   @Controller("/file")  public class FileUploadAction extends DispatchAction {    public ActionForward upload(ActionMapping mapping, ActionForm form,     HttpServletRequest request, HttpServletResponse response) throws Exception {         String fileName = CosUtil.upload(request);    System.out.println(fileName);        return null;   }  }Cos的工具类:package com.kay.common.util;   import java.io.File;  import java.io.IOException;  import java.util.Enumeration;   import javax.servlet.http.HttpServletRequest;   import com.oreilly.servlet.MultipartRequest;   public class CosUtil {    @SuppressWarnings({ "deprecation", "unchecked" })   public static String upload(HttpServletRequest request) throws IOException   {    //存绝对路径    //String filePath = "C://upload";    //存相对路径    String filePath = request.getRealPath("/")+"upload";    File uploadPath = new File(filePath);    //检查文件夹是否存在 不存在 创建一个    if(!uploadPath.exists())    {     uploadPath.mkdir();    }    //文件***容量 5M    int fileMaxSize = 5*1024*1024;       //文件名    String fileName = null;    //上传文件数    int fileCount = 0;    //重命名策略    RandomFileRenamePolicy rfrp=new RandomFileRenamePolicy();    //上传文件    MultipartRequest mulit = new MultipartRequest(request,filePath,fileMaxSize,"UTF-8",rfrp);        String userName = mulit.getParameter("userName");    System.out.println(userName);        Enumeration filesname = mulit.getFileNames();         while(filesname.hasMoreElements()){              String name = (String)filesname.nextElement();              fileName = mulit.getFilesystemName(name);              String contentType = mulit.getContentType(name);                            if(fileName!=null){               fileCount++;              }              System.out.println("文件名:" + fileName);              System.out.println("文件类型: " + contentType);                       }         System.out.println("共上传" + fileCount + "个文件!");                  return fileName;   }  }Cos上传组件用到的重命名策略类:package com.kay.common.util;   import java.io.File;  import java.util.Date;   import com.oreilly.servlet.multipart.FileRenamePolicy;   public class RandomFileRenamePolicy implements FileRenamePolicy {    public File rename(File file) {     String body="";        String ext="";        Date date = new Date();        int pot=file.getName().lastIndexOf(".");        if(pot!=-1){            body= date.getTime() +"";            ext=file.getName().substring(pot);        }else{            body=(new Date()).getTime()+"";            ext="";        }        String newName=body+ext;        file=new File(file.getParent(),newName);        return file;    }  }

感谢各位的阅读,以上就是“JQuery和Struts如何实现Ajax文件上传”的内容了,经过本文的学习后,相信大家对JQuery和Struts如何实现Ajax文件上传这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. struts2+ajax+jQuery 保存数据,返回成功与否
  2. struts2 jquery ajax 局部刷新遇到的各种问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

struts jquery ajax

上一篇:Hibernate中Clob字段的使用方法

下一篇:ubuntu16.04系统安装使用的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》