1

我在网上搜索,但没有找到很多关于我的问题的东西。希望这里有人可以提供帮助!正如我在标题中所写,我想上传多个文件,一次一个,只有一个输入。我尝试使用 JQuery 来执行此操作,如下所示,但显然它不起作用!任何人都可以帮忙,好吗?

    <!doctype html>
    <html>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <head>
    <script>
    $(document).ready(function() {
        $(document).on('change', '.file',function(){
            $('<input type="file" name="file[]" class="file" size="60" />').appendTo($("#divAjout"));
            $("div input:first-child").remove();    
          return false;
        });
    });
    </script>

    <title>test input file unique pour plusieurs fichiers</title>
    </head>

    <body>
    <form action="" method="post" enctype='multipart/form-data'>
    <div id="divAjout">
        <input type="file" name="file[]" class="file" id='file' size="60" />
        </div>


        <input name="submit" type="submit">
    </form>
    <?php       if(isset($_POST['submit'])){echo'<pre>'; print_r($_FILES);echo'<pre>';} ?>
    </body>
    </html>
4

1 回答 1

0

您可以克隆具有递增名称属性的输入文件,例如 file[0]、file[1]、file[2] 等。

function readURL(input) {
                var index = ($(input).data('index'));
                if (input.files && input.files[0]) {
                    var reader = new FileReader();
                    reader.onload = function (e) {
                        $(input).parent().children('.newImage')
                            .attr('src', e.target.result)
                            .height(120);
                    };
                    reader.readAsDataURL(input.files[0]);

                    $('.addPh').show();
                    $('.addPh').last().clone().insertBefore($('#addPhoto')).hide();
                    ++index;
                    $('.addPh').last().children('.photo_new').data('index', index).attr('name', 'photo_new['+index+']');
                }
}

$(document).ready(function () {
    $('#addPhoto').click(function () {
        $('.photo_new').last().click();
    });

});

请参阅此示例:https ://jsfiddle.net/w0cd3Ls4/3/

于 2016-07-24T13:57:45.797 回答