0
<form class="imagegen_file" enctype="multipart/form-data" action="/image_maker/file">
<input class="file" name="image_0" type="file">
<input class="file" name="image_1" type="file">
<input class="file" name="image_2" type="file">
<input class="file" name="image_3" type="file">
<input .....
</form>

<a onclick="return image_gen_file();">upload</a>

<script type="text/javascript">
function image_gen_file(){
    var data = new FormData();
    jQuery.each($('.file')[0].files, function(i, file) {
        data.append('image_'+i, file);
    });

    $.ajax({
        url: baseurl + "/image_maker/file",
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            alert(data);
        }
    });

}</script>

上記のコード ファイルのアップロードは、最初の入力 ("image_0") に対してのみ機能します。他のすべての入力に対して機能するようにしたいのですが、どうすればよいですか

4

2 に答える 2

0

最初の のみをループしていますinput。ネストされたループが必要です。

var data = new FormData();

$('.file').each(function(i) {
    $.each(this.files, function(j) {
        data.append('image_' + i + '_' + j, this);
    });
});

それらをそれぞれ独自の AJAX 投稿に投稿する場合は、代わりにこれを使用します。

$('.file').each(function() {

    var data = new FormData();

    jQuery.each(this.files, function(i, file) {
        data.append('image_'+i, file);
    });

    $.ajax({
        url: baseurl + "/image_maker/file",
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data) {
            alert(data);
        }
    });
});
于 2012-08-24T01:45:08.860 に答える
0
var data = new FormData();
$('.file').each(function(i) {
    data.append('file'+i, this.files[0]);
});
$.ajax({
    url: baseurl + "/image_maker/file",
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data) {
        alert(data);
    }
});
于 2014-08-02T14:42:29.430 に答える