簡體   English   中英

在ajax請求期間檢查文件上傳

[英]Check file upload during ajax request

我有表格,其中其他元素與文件上傳一起使用。對於文件上傳,我使用了

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

在我使用的ajaxRequest中

var formData = new Formdata('#add-charges')[0];

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

在發布表單后的PHP中,如果我檢查$ _FILES數組,則由於我尚未上傳文件,因此給我一個空白數組。 在通過ajax請求發送數據之前,是否有任何方法可以檢查文件上傳大小。

我認為在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
    }); 

希望對您有所幫助。

Ajax發送文件和PHP檢查$ _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);
                }
            });
        });
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM