在jquery中,使用ajax上传文件和文本

function onSubmit (data) {
    //获取文本
    var callingContent = $('#callingContent').val()
              
    // 获取文件
    var files = $("#selected_files")[0].files[0];

    //把文本和文件都存入formData,再发送ajax上传
              var formData = new FormData();
              formData.append('file', files);
              formData.append('text', callingContent);
            console.log(formData)

            $.ajax({
                url: '/webcall/import_excel',
                type: 'POST',
                cache: false,
                data: formData,
                processData: false,
                contentType: false,
                mimeType: "multipart/form-data"
            }).done(function(res) {
                res = JSON.parse(res)
                if (res.code == 0) {
                    var data = res.data[0];
                    console.log(data)
                    localStorage.setItem("callingData", JSON.stringify(data))
                    $('#calling-submit').removeClass('layui-btn-disabled')
                    $('#calling-submit').addClass('layui-btn-primary')
                    $('#calling-submit').addClass('active')
                    $('#calling-submit').on('click', startCalling)
                } else {
                    layer.open({
                        type: 1
                        ,offset: 'auto'
                        ,id: 'layerDemoAuto1' //防止重复弹出
                        ,content: '<div style="padding: 20px 100px;">导入名单失败,请重试</div>'
                        ,btn: '确认'
                        ,btnAlign: 'c' //按钮居中
                        ,shade: 0 //不显示遮罩
                        ,yes: function(){
                            layer.closeAll();
                        }
                    });
                }
            }).fail(function(res) {
                layer.open({
                    type: 1
                    ,offset: 'auto'
                    ,id: 'layerDemoAuto1' //防止重复弹出
                    ,content: '<div style="padding: 20px 100px;">导入名单失败,请重试</div>'
                    ,btn: '确认'
                    ,btnAlign: 'c' //按钮居中
                    ,shade: 0 //不显示遮罩
                    ,yes: function(){
                        layer.closeAll();
                    }
                });
            });
              return false;
}

注意,需要返回的都要存入formdata中!

原文地址:https://www.cnblogs.com/zhuxingqing/p/11895942.html