jquery input-file不用form实现多文件自动上传

01 前言

最近项目上用到了input-file的文件上传,到了跟后台交互的步骤。遂去百度看看前端代码应该如何书写。发现百度上有两种方式,一是input file包裹在form元素内,利用表单元素提交实现发送文件内容到服务器;二是利用formData对象,将文件流与文件名作为键值对形式存入该对象,在发送给服务器。两种都可行,我在此使用第二种,但是百度多是默认上传一个文件,遂自己改造改造实现多文件上传。代码如下:

02 代码

这段代码是用来选择完文件自动上传的,给三个input file绑定了onchane事件,uploadFile方法是封装的具体发请求的代码,下方继续贴出

//上传文件
function addUploadFileMethod(bill_code){
   $('#sjt').change(function(){
       if($(this).val() != ""){
           uploadFile('sjt',bill_code,'sj');
       }
   })
   $('#sgt').change(function(){
       if($(this).val() != ""){
           uploadFile('sgt',bill_code,'sg');
       }
   })
   $('#xczp').change(function(){
       if($(this).val() != ""){
           uploadFile('xczp',bill_code,'pz');
       }
   })
}

重点来咯

稍微解释一下,ele是input file 的id,其余两个参数都是我这边实际请求用到的参数,跟本例并无直接联系,可以忽略。

//上传文件方法封装
function uploadFile(ele,bill_code,type){
    var formData = new FormData();
    
    var files = $('#'+ele)[0].files;
    for(var i = 0;i < files.length;i++){
        var name = files[i].name;              
        var file = files[i];
        
        formData.append("file" + i, file);
        formData.append("name" + i, name);
    }
                                                
    $.ajax({
        url: url + "InstallatManagementUtilController/uploadFile?bill_code="+bill_code+"&file_category="+type,
        type: 'POST',
        data: formData,
        processData: false,    // ⑧告诉jQuery不要去处理发送的数据
        contentType: false,    // ⑨告诉jQuery不要去设置Content-Type请求头
        success: function (responseStr) {                 
            layer.msg("上传成功啦!",{icon:6});
        }
        ,
        error : function (responseStr) {
            layer.msg("上传失败啦,请检查!",{icon:5});
        }
    });
}

03 总结

简书小白,入门级文章,欢迎批评指正,交流学习~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近项目需要使用 Angular,对于初学 Angular 的我只能硬着头皮上了,项目中有一个需求是文件上传,磕磕...
    虽万万人吾往矣阅读 18,468评论 3 20
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,683评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • 从资产负债表到今天利润表的学习,感觉像迷失在原始森林,一路上披荆斩棘,摸索前行。至于写作日更倒真是没有花太多的时间...
    荻七蓿_0dec阅读 1,585评论 0 0
  • 闲记: 1、关于教育:国内大多数家长为何对子女教育投入极大热情,因为他们对自己的教育放弃过早,早早的把对自己的期望...
    晨硕杂谈阅读 3,237评论 0 0

友情链接更多精彩内容