分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

利用html5的FormData对象实现多图上传

发布时间:2023-09-06 01:11责任编辑:苏小强关键词:暂无标签

有两种实现方式:

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)); ?
?????????    }
   });
  }

  后台代码同上。

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

利用html5的FormData对象实现多图上传

原文地址:http://www.cnblogs.com/momo1210/p/7525660.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved