0

解决方案:我不得不放弃 sumbmit 按钮并使用常规按钮。此代码的其余部分有效。我还删除了 HTML 表单。

我正在尝试使用 formdata 使用 ajax 将图像 + 一些文本发送到我的 php 脚本。这就是我得到的:

$ajax_uploadImage = function (form)
{
    var data = new FormData();

    data.append('title', form.find('#title').val());
    data.append('comment', form.find('#comment').val());
    data.append('image', form.find('#image').prop('files')[0]);

    $.ajax({
        url: '../php/upload_image.php',
        data: data,
        type: 'POST',
        processData: false,
        contentType: false,
        success: function (data) {
            alert('something');
        }
    });
}

函数参数中的表单是普通的html表单,这里是html中的表单:

<form enctype="multipart/form-data" id="upload_image">
    <label for="title">Title:</label>
        <input type="text" id="title" name="title" />
    <br />

    <label for="comment">Comment:</label>
    <input type="text" id="comment" name="comment" />
    <br />

    <label for="image">Image:</label>
    <input type="file" id="image" name="image" />
    <br />

    <input type="submit" value="Upload picture" name="submit">
    <hr />
</form>

成功的警报永远不会触发,有人可以帮忙吗?

编辑:添加 PHP,即使它没有做任何事情:

<?php echo 'something'; ?>
4

2 回答 2

0

尝试添加表单操作,例如:

<form enctype="multipart/form-data" id="upload_image" action="upload_image.php">
于 2012-07-24T23:35:54.047 回答
0

现在你正在存储一个FormData无法工作的 jQuery 对象。请改用这些元素的值。如果是文件输入,您需要使用DOM 元素属性中的File对象:files

data.append('title', form.find('#title').val());
data.append('comment', form.find('#comment').val());
data.append('image', form.find('#image').prop('files')[0]);
于 2012-07-24T23:10:24.510 回答