在ajax请求期间检查文件上载

时间:2017-06-15 01:53:05

标签: javascript php jquery ajax

我有表格,其他元素和文件upload.For文件上传我用

/etc

在ajaxRequest中我使用了

<form method="post" id="add_charges" enctype="multipart/form-data">

在PHP发布表单后,如果我检查了$ _FILES数组,它会给我一个空白数组,因为我没有上传文件。有没有办法在通过ajax请求发送数据之前检查文件上传大小。

2 个答案:

答案 0 :(得分:0)

我认为在ajax请求中,您必须为上传文件设置Content-type。试试这个:

$.ajax({
        url: 'function/ajax/topup.php',
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: 'multipart/form-data',
        processData: false
});    

也许你应该序列化数据。

$.ajax({
            url: 'function/ajax/topup.php',
            type: 'POST',
            data: $('#add-charges').serialize(),
            async: false,
            cache: false,
            contentType: 'multipart/form-data',
            processData: false
    }); 

希望有所帮助。

答案 1 :(得分:0)

Ajax send file and PHP check $_FILES.

 var sofg_mixup = jQuery.noConflict();
    sofg_mixup(document).ready(function() {
        sofg_mixup('#ct-file').change(function() {
            var fileInput = sofg_mixup('#ct-file').prop('files')[0];
            var myFormData = new FormData();
            myFormData.append('ct_file', fileInput);
            sofg_mixup.ajax({
                url: 'save_file.php',
                type: 'POST',
                processData: false, // important
                contentType: false, // important
                dataType: 'json',
                data: myFormData,
                success: function(jsonData) {
                    console.log(jsonData);
                },
                error: function(xhr, ajaxOptions, thrownError) {
                    console.log(xhr);
                }
            });
        });
    });