我的代码中有一个包含两个输入元素的表单:
文本输入框 和
文件输入框(其中将包含一张图片)。
我在按钮点击时附加每个文件输入框并希望在ajax调用中上传所有图像, 但是在我的PHP文件中,我只得到了最终图片和文本输入框的值。
我的HTML和jQuery代码如下:
HTML代码
<html>
<body>
<form name="ajax_image" id="ajax_image" method="post">
<input type="text" name="project_name" id="project_name" placeholder="Project Name" /><br/><br/>
<input type="text" name="project_duration" id="project_duration" placeholder="Project Duration" /><br/><br/>
<div id="image_uploads">
<input type="file" name="project_image[]" class="project_image" placeholder="Project Image" />
<input type="button" name="add_upload" id="add_upload" value="+" />
<br/><br/>
</div>
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
</body>
</html>
JQuery 代码
<script>
$(document).ready(function () {
var count=0;
$("#add_upload").click(function(){
var input = '<input type="file" name="project_image[]" class="project_image" placeholder="Project Image"/><br/><br/>'
$("#image_uploads").append(input);
count++;
});
$("#ajax_image").submit(function (event) {
event.preventDefault();
var data = new FormData();
for(var j=0 ; j<= count ; j++)
{
// alert(j);
$.each($(".project_image")[j].files, function (i, file)
{
data.append(i, file);
});
}
$.each($('#ajax_image').serializeArray(), function (i, obj) {
data.append(obj.name, obj.value)
});
$.ajax({
url: "http://localhost/hetal/multi_image_php_ajax.php",
type: "POST",
data: data,
processData: false,
contentType: false,
success: function () {
alert('Form Submitted!');
},
error: function () {
alert("error in ajax form submission");
}
});
});
});
</script>
PHP文件
<?php
print_r($_POST);
print_r($_FILES);
?>
<input type="file" name="project_image[]" class="project_image" placeholder="Project Image" multiple />
来获取多个文件? - Varun