zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    【BZOJ 4581】【Usaco2016 Open】Field Reduction
    【BZOJ 4582】【Usaco2016 Open】Diamond Collector
    【BZOJ 4580】【Usaco2016 Open】248
    【BZOJ 3754】Tree之最小方差树
    【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
    【51Nod 1622】【算法马拉松 19C】集合对
    【51Nod 1616】【算法马拉松 19B】最小集合
    【51Nod 1674】【算法马拉松 19A】区间的价值 V2
    【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
    【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
  • 原文地址:https://www.cnblogs.com/wingzw/p/7562989.html
Copyright © 2011-2022 走看看