网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 springMVC结合AjaxForm上传文件
内容
    这篇文章主要介绍了springMVC结合AjaxForm上传文件的相关资料,感兴趣的小伙伴们可以参考一下
    最近在项目中需要上传文件文件,之前一直都是form提交的,尝试了一下AjaxForm,感觉还比较好用,写篇随笔mark下,供以后使用。
    准备工作:
    下载jquery-form.js
    相关jar:
    commons-fileupload-1.1.1.jar
    commons-io-1.3.2.jar 
    在spring-servlet.xml进行multipartResolver配置:
    <bean id="multipartResolver"
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
      <property name="defaultEncoding" value="utf-8" />
      <property name="maxUploadSize" value="10485760000" />
      <property name="maxInMemorySize" value="40960" />
    </bean> 
    这个是必须的,否则不好用。
    页面:
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false" %>
    <html>
    <!-- 
    - Author(s): xieshuang
    - Date: 2016-06-20 13:46:20
    - Description:
    -->
    <head>
    <title>Title</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <script src="<%=request.getContextPath()%>/common/nui/nui.js" type="text/javascript"></script>
    <script src="<%=request.getContextPath()%>/common/nui/jquery/jquery-form.js" type="text/javascript"></script>
    <script type="text/javascript" src="<%=request.getContextPath()%>/page4nui/master/projecttype/js/projecttype_import.js"></script>
    <script type="text/javascript">
      var contextPath="<%=request.getContextPath()%>";
    </script>
    </head>
    <body>
    <div id="test">
      <form id="fileUpload" method="post" enctype="multipart/form-data">
      <div id="dataImport">
        <table >
          <tr>
            <th >选择文件:</th>
            <td>
              <input id="uploadFile" type="file" name="file"><font> *</font>
            </td>
          </tr>
        </table>   
      </div>
      <div>
        <input iconCls="icon-ok" value="确定" type="submit" />
        <span></span>
        <a iconCls="icon-cancel" onclick="cancel">取消</a>
      </div> 
      </form>     
    </div>
    </body>
    </html> 
    核心js:
    var msg;
    $(function(){
    nui.parse();
    //ajax配置
    var options = { 
        url: contextPath+"/webapp/cfProjectType/importExcel",
        beforeSubmit: showRequest, //提交前处理 
        success:    showResponse, //处理完成 
        resetForm: true, 
        dataType: 'json'
        }; 
      $('#fileUpload').submit(function() { //注意
        $(this).ajaxSubmit(options); 
        return false;//防止dialog 自动关闭
       });
    })
    //执行成功回调函数
    function showResponse(e) {
      nui.hideMessageBox(msg);
      if (e.importFlag == true) {
        CloseWindow("ok");
      } else {
        //对错误的一些处理
      }
    }
    //提交前的一些校验
    function showRequest(formData, jqForm, options){
      if(formData[0].value=="" || formData[0].value==null){
        nui.alert("请选择文件");
        return false;
      }
      var fileName = $("#uploadFile").val().split("\\").pop();
      var strs = new Array(); //定义一数组
      strs = fileName.split('.');
      var suffix = strs [strs .length - 1];
      if (suffix != 'xls' && suffix != 'xlsx') {
        nui.alert("请选择excel文件!");
        return false;
      }
      msg = nui.loading("Loading", "Please waiting");
    } 
    java代码:
    @SuppressWarnings("unchecked")
    @RequestMapping("/webapp/cfProjectType/importExcel")
    @ResponseBody
    public Map<String, Object> importExcel(@RequestParam("file") MultipartFile[] files, HttpServletRequest request)
        throws Throwable {
      //long starttiem = System.currentTimeMillis();
      InputStream fis;
      fis = null;
      File fileIn = null;
      try {
        for (MultipartFile myfile : files) {
          if (!myfile.isEmpty()) {
            String realPath = request.getSession().getServletContext().getRealPath("/export");
            fileIn = new File(realPath);
            //判断上传文件的保存目录是否存在
            if (!fileIn.exists() && !fileIn.isDirectory()) {
              //创建目录
              fileIn.mkdirs(路径);
            }
            //将上传的文件复制到文件夹下
            myfile.transferTo(new File(路径+文件名));
          }
          }
        }  
    这里我之前用过另外一个方法FileUtils.copyInputStreamToFile(InputStream arg0, File arg1)同样能将文件保存到路径下面
    以上就是本文的全部内容,希望对大家的学习有所帮助
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 22:31:11