原生input标签实现ajax单文件上传和多文件上传

本文介绍了如何使用原生HTML input标签实现AJAX单文件和多文件上传,通过示例代码详细讲解了上传过程,包括文件类型校验、FormData对象的使用,以及后端Node.js的文件解析。强调了input标签的multiple属性在多文件上传中的应用,并提供了错误处理和文件管理的注意事项。
摘要由CSDN通过智能技术生成

     自己还是一个菜鸟的时候,有次项目经理让我用Java做一个多文件上传的功能。那时候技术学得很渣,最多只能够实现单文件上传。做了一个星期都没有做出来,于是项目经理不留半点情面,当着办公室所有人的面痛批我一顿,让我颜面扫地,当时我对了他一句我大不了辞职嘛。那是我的悲伤记忆,最终和上级领导沟通半天后,确定留下来继续干。经历一些事情后,一个人总是要成长的,我也一样。如果那个简单的功能都做不出来,那我还能够干什么呢?除了提升自己我还能干什么呢?

      那次的问题最后是使用SWFUpload插件解决多文件上传问题的,多年之后的今天已经对文件上传信手拈来,不管是使用插件还是原生的input标签。现在来分享一下使用原生input标签上传文件的用法。

AJAX实现单文件上传
    <input type="file" name="file" id="uploadFile"  οnchange="uploadExcel()"  accept=".xls,.xlsx">

input标签可以隐藏也可以显示出来,样式怎么好看自己就怎么改,type,name属性不要忘记。主要是触发input标签的单击事件,然后选择文件。accept属性的作用是可以限制文件的选择类型,不在accept里面的类型的文件不会显示出来。对一般人来说还是能起作用。选择好文件后,触发下一个事件onchange,它是在文件选择好以后执行。重点来了,文件选择好以后需要做的事情,上代码:

       let fileType = $('#uploadFile').val();
        fileType = fileType.substring(fileType.lastIndexOf('.'));

        //文件类型校验
        if(fileType !== '.xls' && fileType !== '.xlsx'){
            return msgError('操作提示:只能上传xls格式或者xlsx格式的文件!');
        }

        //获取单个文件
        let file = document.getElementById(`uploadFile`).files[0];

       //必须创建一个FormData对象,然后将获取到的文件数据添加到对象中,并且要注意inputFile,解析时需要它。
        let formData = new FormData();
        formData.append('inputFile',file);
        $.ajax({
            url: '{ {projcfg.appurl}}/api/cable/cable_manage_route/uploadExcel',
            type: 'post',
            data: formData,
            cache: false,//上传文件无需缓存
            contentType: false,//必须
            processData: false,//用于对data参数进行序列化处理 这里必须false
            success: function (json) {
                if (json.success) {
                    msgSuccess(`消息提示:${json.msg}`);
                    $("#dataTable"

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值