jQuery Ajax上传文件

Posted wing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery Ajax上传文件相关的知识,希望对你有一定的参考价值。

function UploadFileExcel() {
                var file = $("#file_upload")[0].files[0];
                var form = new FormData();
                form.append("file", file);
                form.append("uid", uid);
                form.append("token", token);
                $.ajax({
                    url: eshopUrl + "/index.php/Adminpc/V1/Ms/MsCard/inPool",
                    type: "POST",
                    contentType: "multipart/form-data",
                    data: form,
                    async: false, //异步
                    processData: false, //很重要,告诉jquery不要对form进行处理
                    contentType: false, //很重要,指定为false才能形成正确的Content-Type
                    success: function(res) {
                        if(res.result == 1) {
                    
                        } else {
                           
                        }
                    },
                    error: function() {
                        AlertMsg("连接网络错误,请稍后再试");
                    }
                });
                $(‘#file_upload‘).replaceWith(‘<input class="up-file-input" id="file_upload" type="file" onchange="UploadFileExcel();" onchange="UploadFileExcel();" accept=".xlsx,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>‘);
            }

分片上传文件

 

var file = $("#file")[0].files[0], //文件对象
                        name = file.name, //文件名
                        size = file.size, //总大小
                        succeed = 0,
                        i = 0;

                    var shardSize = 2 * 1024 * 1024, //以2MB为一个分片

                        shardCount = Math.ceil(size / shardSize); //总片数
                    for(; i < shardCount; i++) { //计算每一片的起始与结束位置
                        var start = i * shardSize,

                            end = Math.min(size, start + shardSize);

                        //构造一个表单,FormData是html5新增的

                        var form = new FormData();

                        form.append("file", file.slice(start, end)); //slice方法用于切出文件的一部分
                        form.append("name", name);
                        form.append("total", shardCount); //总片数
                        form.append("index", i + 1); //当前是第几片       
                        form.append("md5", md5); //当前是第几片      

                        //Ajax提交

                        $.ajax({
                            url: eshopUrl + "/index.php/Adminpc/V1/Setting/Version/uploadFile",
                            type: "POST",
                            contentType: "multipart/form-data",
                            data: form,
                            async: false, //异步
                            processData: false, //很重要,告诉jquery不要对form进行处理
                            contentType: false, //很重要,指定为false才能形成正确的Content-Type
                            success: function(res) {
                                succeed++;
                                $("#output").text(succeed + " / " + shardCount);
                                if(succeed == shardCount) {
                                    document.getElementById("path").value = res.data;
                                }
                            }
                        });

                    }
                    $(".loading").hide();

 

以上是关于jQuery Ajax上传文件的主要内容,如果未能解决你的问题,请参考以下文章

jQuery / ajax 上传图片并保存到文件夹

如何使用 jQuery.ajax 和 FormData 上传文件

jQuery Ajax 文件上传

jQuery Ajax 文件上传

jQuery Ajax 文件上传

显示多文件上传 Jquery/Ajax 的进度