jQuery-FormData发送一个空图像 [英] jQuery - FormData sends an empty image

查看:102
本文介绍了jQuery-FormData发送一个空图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用jquery提交表单时,发生了奇怪的事情.即使我没有选择表单中的任何图像,$_FILES数组也包含一个空值.如果我选择图像,则会有一个额外的空值.

Weird thing is happening when I submit a form using jquery. Even though I don't pick any image in the form, the $_FILES array contains an empty value. If I pick images, there is one extra empty value.

以前有人看过吗?

Array
(
    [item_image] => Array
        (
            [name] => Array
                (
                    [0] => 
                )

            [type] => Array
                (
                    [0] => 
                )

            [tmp_name] => Array
                (
                    [0] => 
                )

            [error] => Array
                (
                    [0] => 4
                )

            [size] => Array
                (
                    [0] => 0
                )

        )

)

AJAX

AJAX

$( "#fileupload" ).submit(function( event )
    {
        //disable the default form submission
        event.preventDefault();

        //grab all form data
        var formData = new FormData(this);

        $.ajax({
            url: 'ajax/add-item.php',
            data: formData,
            type: 'POST',
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {
                alert(data);
                if(data)
                {
                    $("#fileupload > div.alert").text('Upload successful.');
                    $('html, body').animate({scrollTop : 0},700);
                    document.getElementById("#fileupload").reset();
                }
            }
        });

    });

推荐答案

尝试以下示例:

HTML/PHP

<?
    print_r($_POST);
    print_r($_FILES);
?>

<form id="data" method="post" enctype="multipart/form-data">
    <input type="text" name="first" value="Bob" />
    <input type="text" name="middle" value="James" />
    <input type="text" name="last" value="Smith" />
    <input name="image" type="file" />
    <button>Submit</button>
</form>

jQuery

$("form#data").submit(function(){

    var formData = new FormData($(this)[0]);

    $.ajax({
        url: window.location.pathname,
        type: 'POST',
        data: formData,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
    });

    return false;
});

祝你好运!

这篇关于jQuery-FormData发送一个空图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆