zoukankan      html  css  js  c++  java
  • 利用html5的FormData对象实现多图上传

    有两种实现方式:

    1.可以使用form的方式实现。

      html代码如下:

      <body>
        <form enctype="multipart/form-data" id="inputForm1" modelAttribute="bankAdminist" action="" method="post" class="form-horizontal">
          <div class="control-group">
            <label class="control-label">*PC端银行LOGO:</label>
            <div class="controls">
              <input type="hidden" id="image" name="pcLogopic" value="" />
              <input type="file" name="file" id="file1"/><input type="button" value="上传" onclick="uploadImage()" class="btn btn-primary"/>
            </div>
          </div>
        </form>
        <form enctype="multipart/form-data" id="inputForm2" modelAttribute="bankAdminist" action="" method="post" class="form-horizontal">
          <div class="control-group">
            <label class="control-label">*APP端银行LOGO:</label>
            <div class="controls">
              <input type="hidden" id="image2" name="appLogopic" value="" />
              <input type="file" name="file" id="file2"/><input type="button" value="上传" onclick="uploadImage2()" class="btn btn-primary"/>
            </div>
          </div>
        </form>

      </body>

      js代码如下: 

      function uploadImage(){
        var file=$("#file1").val();
        var num=1;
        upload(file,num);
      }
      function uploadImage2(){
        var num=2
        var file=$("#file2").val();
        upload(file,num);
      }
      function upload(file,num){
        if(file==""){
          alert("请选择上传的文件!");
          return false ;
        }
        var form = document.getElementById("inputForm"+num);
        //得到formdata对象
        var formdata = new FormData(form);
        //ajax异步上传图片
        //返回的filename类似 front/a.jpg
        $.ajax({
          url : "/momo/picture/uploadImg.do",
          type : "POST",
          data : formdata,
          //dataType: "json",
          cache : false,
          contentType : false, //不可缺
          processData : false, //不可缺
          success:function(filename){
          },
          error: function (returndata) {
            alert(JSON.stringify(returndata));
          }
        });
      }

      后台代码:

      

      @RequestMapping(value="/uploadImg")
      @ResponseBody
      public String uploadImg(@RequestParam(value = "file", required = true) MultipartFile multipartFile,HttpServletRequest request,HttpServletResponse response) throws IOException{

        String name = multipartFile.getOriginalFilename();

        System.out.println(multipartFile+"---"+name);

        .........

      }

    2.不使用form,只用input就可以完成

      html代码如下: 

      <body>
        <div class="control-group">
        <label class="control-label">*PC端银行LOGO:</label>
        <div class="controls">
        <input type="hidden" id="image" name="pcLogopic" value="" />
        <input type="file" name="file" multiple="multiple" id="file1"/><input type="button" value="上传" onclick="uploadImage()" class="btn btn-primary"/>

        </div>
        </div>
        <div class="control-group">
        <label class="control-label">*APP端银行LOGO:</label>
        <div class="controls">
        <input type="hidden" id="image2" name="appLogopic" value="" />

        <input type="file" name="file" multiple="multiple" id="file2"/><input type="button" value="上传" onclick="uploadImage2()" class="btn btn-primary"/>

        </div>
        </div>

      </body>

      js代码如下: 

      function uploadImage(){
        var file=$("#file1").val();
        var num=1;
        upload(file,num);
      }
      function uploadImage2(){
        var num=2;
        var file=$("#file2").val();
        upload(file,num);
      }
      function upload(file,num){
        if(file==""){
          alert("请选择上传的文件!");
          return false ;
      }

      var files= $("#file"+num).get(0).files;
      //如果有选择图片则上传图片
      var formData= new FormData();
      if(files.length>0){
        for(var i=0;i<files.length;i++){
          formData.append('file',files[i]);
        }
      }
      //得到formdata对象
      //ajax异步上传图片
      $.ajax({
        url : "/momo/picture/uploadImg.do",
        type : "POST",
        data : formData,
        //dataType: "json",
        cache : false,
        contentType : false, //不可缺
        processData : false, //不可缺
        success:function(filename){
        },
        error: function (returndata) {
          alert(JSON.stringify(returndata));
        }
       });
      }

      后台代码同上。

      我这里只是简单展示下数据发送到了后端文件上传控制器,剩下的根据项目业务的需求继续进行下去吧

  • 相关阅读:
    linux
    查看字符的编码数字
    各种语系的unicode对应以及local编码方式
    Unicode字符集,各个语言的区间
    深入理解Python的字符编码
    php 快排
    归并排序
    检测到在集成的托管管道模式下不适用的 ASP.NET 设置的解决方法
    分布式缓存MemcacheHelper
    单例模式
  • 原文地址:https://www.cnblogs.com/momo1210/p/7525660.html
Copyright © 2011-2022 走看看