• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    利用 FormData 对象和 Spring MVC 配合实现Ajax文件下载功能

    Ajax文件下载

    利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能:

    步骤

    1.导入组件并准备静态脚本

    dependency>
     groupId>commons-fileupload/groupId>
     artifactId>commons-fileupload/artifactId>
     version>1.3.2/version>
    /dependency>
      h1>Ajax 文件上载/h1>
      input type="file" id="file1"> br>
      input type="file" id="file2"> br>
      input type="button" id="upload" value="上载" >
      div id="result">/div>

    1.绑定事件到按钮

    $("upload").click(ajaxUpload);

    2.获取文件

    var file1 = $("#file1")[0].files[0];
    var file2 = $("#file2")[0].files[0];

    3.创建内存中的表单对象,并添加向服务器传输的数据

    //创建内存中的表单对象
    var form = new FormData();
    //向其中添加要传输的数据
    form.append("userfile1", file1);
    form.append("userfile2", file2);

    4.ajax()上传对象

    $.ajax({
      url:'user/upload.do',//请求地址
      data: form,   //请求参数
      type: 'POST',  //请求类型
      dataType: 'json',//服务器返回的数据类型
      contentType: false,//没有设置任何内容类型头信息
      processData: false, //见jQuery_api详解
      success: function(obj){ //成功时回调函数,obj表示服务器返回的数据
        if(obj.state==0){
          $('#result').html("成功!"); 
        }
      }
    });

    5.Spring-MVC表现层

    @RequestMapping("/upload.do")
    @ResponseBody
    public JsonResult upload( 
        MultipartFile userfile1, 
        MultipartFile userfile2) throws Exception{
      //Spring MVC 中可以利用 MultipartFile 
      //接收 上载的文件! 文件中的一切数据
      //都可以从 MultipartFile 对象中找到
      //获取上再是原始文件名
      String file1 = 
        userfile1.getOriginalFilename();
      String file2 = 
        userfile2.getOriginalFilename();
      System.out.println(file1);
      System.out.println(file2);
      //保存文件的3种方法:
      //1. transferTo(目标文件)
      //  将文件直接保存到目标文件, 可以处理大文件
      //2. userfile1.getBytes() 获取文件的全部数据
      //  将文件全部读取到内存, 适合处理小文件!!
      //3. userfile1.getInputStream()
      //  获取上载文件的流, 适合处理大文件
      //保存的目标文件夹: /home/soft01/demo
      File dir = new File("D:/demo");
      dir.mkdir();
      File f1 = new File(dir, file1);
      File f2 = new File(dir, file2);
      //第一种保存文件
      //userfile1.transferTo(f1);
      //userfile2.transferTo(f2);
      //第三种 利用流复制数据
      InputStream in1 = userfile1.getInputStream();
      FileOutputStream out1 = 
        new FileOutputStream(f1);
      int b;
      while((b=in1.read())!=-1){
        out1.write(b);
      }
      in1.close();
      out1.close();
      InputStream in2 = userfile2.getInputStream();
      FileOutputStream out2=
          new FileOutputStream(f2);
      byte[] buf= new byte[8*1024];
      int n;
      while((n=in2.read(buf))!=-1){
        out2.write(buf, 0, n);
      }
      in2.close();
      out2.close();
      return new JsonResult(true);
      }

    总结

    以上所述是小编给大家介绍的利用 FormData 对象和 Spring MVC 配合实现Ajax文件下载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • SpringMVC+Ajax实现文件批量上传和下载功能实例代码
    • Springmvc ajax跨域请求处理方法实例详解
    • spring mvc利用ajax向controller传递对象的方法示例
    • SpringMVC环境下实现的Ajax异步请求JSON格式数据
    • springmvc 结合ajax批量新增的实现方法
    上一篇:Ajax返回数据之前的loading等待效果
    下一篇:基于apicloudAJAX请求代码合集
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    利用 FormData 对象和 Spring MVC 配合实现Ajax文件下载功能 利用,FormData,对象,和,Spring,