解决方案:我不得不放下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'; ?>
答案 0 :(得分: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]);
答案 1 :(得分:0)
尝试添加表单操作,例如:
<form enctype="multipart/form-data" id="upload_image" action="upload_image.php">