我知道关于这个问题有几个问题,我已经梳理了很多问题,但没有找到正确的方法来正确地实现目标。本质上,我试图在表单中捕获多个文件输入并将它们推送到PHP。我有PHP部分至少想通了,但它的Jquery我正在努力。我通过调试注意到的一个主要问题是我的动作参数根本没有通过。我发布的代码如下。任何帮助将不胜感激。谢谢。
$(document).ready(function () {
//if submitting imgages form
$('#submit').click(function () {
// match anything not a [ or ]
regexp = /^[^[\]]+/;
var fileInput = $('.putImages input[type="file"]');
var fileInputName = regexp.exec(fileInput.attr('name'));
// make files available
var data2 = new FormData(fileInput);
jQuery.each($(fileInput)[0].files, function (i, file) {
data2.append(fileInputName + '[' + i + ']', file);
});
//organize data
var data = new FormData($('input[name^="uploadFile"]'));
jQuery.each($('input[name^="uploadFile"]')[0].files, function (i, file) {
data.append(i, file);
});
$.ajax({
type: 'GET',
url: 'productadminupdate.php',
data: data2 + "&action=" + 'images',
cache: false,
contentType: false,
processData: false,
success: function (response) {
$('#imgform_result').html(response).fadeIn();
}
});
return false;
});
});
答案 0 :(得分:1)
我不知道我是否得到了它,但是当人们想到ajax上传者时,他们并不是真的知道这一点。实际上,JavaScript不是在做这项工作。 该技术存在于将表单的操作定位到Iframe。 应隐藏此Iframe 这是一个例子:
<form method='post' enctype='multipart/form-data' action='YOUR_FILE.php' target='upload_iframe'>
<label>photo1:</label>
<input type='file' name='photo1'/>
<label>photo2:</label>
<input type='file' name='photo2'/>
<label>photo3:</label>
<input type='file' name='photo3'/>
<label>photo4:</label>
<input type='file' name='photo4'/>
<label>photo5:</label>
<input type='file' name='photo5'/>
<input type='submit' value='Send'/>
</form>
</div>
<iframe name='upload_iframe'></iframe>
所以在iframe中,你的php代码将进行上传,使用$ _FILES获取信息。