A-A+

如何使用button实现ajax上传文件?

2018年05月19日 前端开发 暂无评论 阅读 14,850 views 次

有的时候input的file文件框样式比较丑,所以我们会默认隐藏起来,使用button来实现文件上传。

直接贴代码,备注下。

html代码:

<form id="infoLogoForm" enctype='multipart/form-data'>
    <a class="btn btn-blue" href="/static/template.xlsx" data-icon="arrow-down">下载模板</a>
    <button type="button" class="btn btn-blue" data-icon="sign-in" id="import">导入商户</button>
    <input type="file" accept=".xls,.xlsx" style="display: none;" id="file_import" name="file">
</form>

js代码:
$("#import").click(function () {
    return  $("#file_import").click();
});

var uploading = false;
$("#file_import").on("change", function(){
    if(uploading){
        alert("文件正在上传中,请稍候");
        return false;
    }

    var fileName = $(this).val();                  //获得文件名称
    var fileType = fileName.substr(fileName.length-4,fileName.length);  //截取文件类型,如(.xls)
    //console.log(fileType);

    if(fileType == 'xlsx' || fileType == 'xls')
    {
        $.ajax({
            url: "/upload/excel",
            type: 'POST',
            cache: false,
            data: new FormData($('#infoLogoForm')[0]),
            processData: false,
            contentType: false,
            dataType:"json",
            beforeSend: function(){
                uploading = true;
            },
            success : function(data) {
                if (data.status == 200) {
                    alert('上传成功')
                } else {
                    
                }
                uploading = false;
            }
        });
    }
    else
    {
        alert('上传文件类型错误,支持类型: .xls .xlsx');
    }
});


标签:

给我留言

Copyright © 严佳冬 保留所有权利.   Theme  Ality 百度地图 苏ICP备19045515号-2

用户登录

分享到: