上传文件进阶

1. FormData来进行文件上传

  参考文档 : https://www.jianshu.com/p/e984c3619019

    FormData 就是2008年 2 月 XMLHttpRequest Level 2 新增的一个对象。

    利用它来提交表单、模拟表单提交,当然最大的优势就是可以上传二进制文件

实现效果多文件上传,点击发布统一保存在数据库中。

 

html:    
<p>直播资料:</p>
<input type="file" id="uploadFileId" style="display: none">
  <ul class="remeans clearfix">
      <li class="remeansUp dis">
        <img src="/liveManager/img/button_add.png" alt="" class="addIcon">
          <p>上传</p>
       </li>
  </ul>
    

js:

    //上传文件btn
    $(".remeansUp").click(function () {
       $("#uploadFileId").click();
    })

    var fileDatas = [];//文件集合
    //上传后的监听事件 获取到上传文件名称
    $("input[type=file]").change(function(e){
        var fileName = getFileName( $("#uploadFileId").val());
        var suffix = fileName.substr(fileName.lastIndexOf(".")+1);
        var fileHtml = "<li>"+fileName+suffix+"</li>";
        $(".remeansUp").before(fileHtml);

        fileDatas.push($("#uploadFileId")[0].files[0]);
    })

    //jquery获取input file文件名
    function getFileName(o){
        var pos=o.lastIndexOf("\\");
        return o.substring(pos+1);
    }


    //发布直播课
    $(".relesaSure").click(function () {
            var formData = new FormData();//这里需要实例化一个FormData来进行文件上传
            for(var i = 0;i<fileDatas.length;i++){
                formData.append("file"+i,fileDatas[i]);
            }
            formData.append("name","张三");

            $.ajax({
                url: "/live/addLiveClass",
                type: "POST",
                traditional:true, //实现上传数组
                processData: false, // 告诉jQuery不要去处理发送的数据
                contentType: false, // 告诉jQuery不要去设置Content-Type请求头
                data: formData,
                success: function (data) {
                },
                error: function () {
                }
            });

    })

springmvc后台:

    @RequestMapping("/addLiveClass")
	@ResponseBody
	public ResponseMsg addLiveClass(HttpServletRequest request, String name){

        MultipartHttpServletRequest multipartRequest = WebUtils.getNativeRequest(request, 
        MultipartHttpServletRequest.class);
        //获取一个文件 指定文件名称
        //MultipartFile file= null;
        //file = multipartRequest.getFile("file");
        //获取文件集合
        Map<String, MultipartFile> multipartFileMap = multipartRequest.getFileMap();
        Collection<MultipartFile> files = multipartFileMap.values();

        //这里获取到文件流集合上传到对应的路径中
     
    }

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值