多文件上传

    <form enctype="multipart/form-data">
        <p>上传csv文件<input type="file" id="csv_file" name="csv_file"/></p>
        <button id="import">导入</button>
    </form>
    <script type="application/javascript">
        $("#import").click(function () {
            var files = $('#csv_file').prop('files');
            var data = new FormData();
            data.append('csv_file', files[0]);

            $.ajax({
                type: 'POST',
                url: "http://xxxx/import_csv",
                data: data,
                cache: false,
                processData: false,
                contentType: false,
                success: function (ret) {
                    alert(ret);
                }
            });
        });
    </script>

form的enctype必须是multipart/form-data才可以上传多个文件,ajax通过FormData来上传数据,ajax的cache、processData、contentType均要设置为false。
cache设为false是为了兼容ie8,防止ie8之前版本缓存get请求的处理方式。
contentType设置为false原因:https://segmentfault.com/a/1190000007207128。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。

posted @ 2022-10-21 16:25  strongerPian  阅读(96)  评论(0编辑  收藏  举报
返回顶端