PHP $ _FILES不能使用JQuery Json

时间:2012-01-06 20:05:44

标签: jquery json file-upload

我正在使用JQuery和PHP构建一个表单,一切似乎都可以接受文件上传。 Json似乎不喜欢$ _FILES。当javascript关闭时,表单上传很好。这是一个已知的问题?如果是,是否有解决方法? JQuery插件如何设法做到这一点?

谢谢!

JQUERY:

$('#mcContactForm').submit(function(e){
    e.preventDefault();

    // validate form
    mcValidateForm();

    // serialize and submit form data
    $('.mcloading').show();
    var mcFormData = $(this).serialize();
    mcSubmitForm(mcFormData);

    // -----------------------------------------------
    // AJAX FORM SUBMIT
    // -----------------------------------------------
    function mcSubmitForm(mcFormData){
        $.ajax({
            type: 'POST',
            url: 'contact.php',
            data: mcFormData,
            dataType: 'json',
            cache: false,
            timeout: 7000,
            success: function(data) {
                if(data.error === true){

                    ...
                }
                else if(data.error === false){

                    ...
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
                alert(errorThrown);
                ...
            },              
            complete: function(XMLHttpRequest, status) { 
                ...
            }
        });
    }
});

1 个答案:

答案 0 :(得分:2)

听起来好像你正试图通过ajax上传文件并发现只需通过常规的ajax发送表单参数就无法完成这项工作?如果是这样,你需要的是一个ajax文件上传插件。请看这里的一些可能性:

http://www.webdeveloperjuice.com/2010/02/13/7-trusted-ajax-file-upload-plugins-using-jquery/

这些通常使用提交隐藏iframe的系统来进行上传。