• php上传整个文件夹


    有一个需求就是实现文件夹整个上传。而不是单个文件上传
    但是只找到这个办法。适合谷歌的。有更好的。希望大神告知!
    按钮可以自己设计
    <form id="uploadForm" enctype="multipart/form-data" style="background-color:#ecf0f5">
    <span class="file">上传文件夹 <input type="file" id="uoloadfile" name="file" webkitdirectory> </span>
    </form>
    input里加这个属性webkitdirectory就是默认可以上传文件夹了。谷歌浏览器可以。其他浏览器好像不行
    js代码
    <script>
        var treeid = 1;
        var uploadcount=0;//这次上传文件总数
        var backcount=0;
    //文件上传触发时间
        $("#uoloadfile").change(function(){
            var $list = $('.upload-html');
            var files_arr=[];
            var formData = new FormData();
            files_arr = document.getElementById("uoloadfile").files;//获取上传的文件的数据
            var files=[];
            var name="";
            var xhr = new XMLHttpRequest();
            uploadcount=files_arr.length;
            for (var i=0;i<files_arr.length;i++)
            {
                name=files_arr[i].name;
                files=files_arr[i];
                formData.append("cid",treeid);
                formData.append("fname",files.webkitRelativePath);
                formData.append("file",files);
                getajax(formData,name);//执行上传文件ajax
            }
        });
        function getajax(formData,name){
            $("#thelist2").css("display","block");
            $.ajax({
                url:'{:get_page_action("morefileupload")}',
                type: "POST",
                data: formData,
                async:true,
                processData: false,  // 不处理数据
                contentType: false,
                beforeSend: function(){
                    $('.progress').css('color','#1AB394').show();
                },
                success:function(result){
                    backcount++;
                    if(result.code==1){
                        $('.progress').html(result.msg).css('color','black').fadeOut(10000,function(){$(this).html('')});
                        $('.filename').css('color','black').fadeOut(10000,function(){$(this).html('')});
                    }
                    if(backcount==uploadcount){
                        $('#thelist2').css('display','none');
                        setTimeout(function(){
                            window.location.reload();
                        },1000);
                    }
                },
                xhr: function(){
                    var xhr = $.ajaxSettings.xhr();
                    if(onprogress && xhr.upload) {
                        xhr.upload.addEventListener("progress", function () { onprogress(event,name) }, false);//监听文件上传进度,name文件名
                        return xhr;
                    }
                },
                error:function(){
                    $('.progress').html(result.msg).css('color','black').fadeOut(10000,function(){$(this).html('')});
                    $('.filename').css('color','black').fadeOut(10000,function(){$(this).html('')});
                    $('#thelist2').css('color','black').fadeOut(10000,function(){$(this).html('')});
                    setTimeout(function(){
                        window.location.reload();
                    },1000);
                }
            });
    //实现进度条
            function onprogress(evt,name){
                var loaded = evt.loaded;
                var tot = evt.total;
                var txt1="<p class='filename'>"+name+"</p>";
                var txt2="<div class='progress'><div class='bar'";
                txt2+='style=';
                txt2+=+Math.floor(100*loaded/tot)+'%'+">";
                txt2+=Math.floor(100*loaded/tot)+'%';
                txt2+=" </div></div>";
                $("#progress-mask").append(txt1,txt2);
            }
        }
    </script>
    --------------------- 
    原文链接:https://blog.csdn.net/hexiaoniao/article/details/89231143

     

    效果展示: 


    在页面中选择好相应的上传目录,点击粘贴上传按钮,数据即可快速开始上传

     说明: http://blog.ncmem.com/wordpress/wp-content/uploads/2019/07/20190730094916_47641.png       

     说明: http://bbsres2.ncmem.com/731fda07.png   

    数据库记录

     说明: http://bbsres2.ncmem.com/ccfc907c.png    

    Mac控件安装教程与演示说明:

    http://t.cn/AijgiFgW

    http://t.cn/Aijg6z08

     

    Linux控件安装教程与演示说明:

    http://t.cn/Aijg6Lv3

    http://t.cn/Aijg64k6

     

    控件包下载:

    MacOShttp://t.cn/Aijg65dZ

    Linuxhttp://t.cn/Aijg6fRV

     cab(x86)http://t.cn/Ai9pmG8S 

    cab(x64)http://t.cn/Ai9pm04B 

    xpihttp://t.cn/Ai9pubUc 

    crxhttp://t.cn/Ai9pmrcy 

    exehttp://t.cn/Ai9puobe   

     

    示例下载: 

    php http://t.cn/Ai9p3CKQ   

     

    在线教程: 

    php-文件管理器教程:http://t.cn/AiNhmilv

     

    个人博客:http://t.cn/AiY7heL0

     

    www.webuploader.net

     

  • 相关阅读:
    Servlet(九):web.xml文件和server.xml文件
    Servlet(八):ServletContext对象和ServletConfig对象
    Servlet(七):session
    Servlet(六):Cookie
    Servlet(五):请求转发和重定向
    Servlet(四):request和response对象
    Servlet(三):生命周期、常用方法、常见错误
    【php】在Windows2003下的IIS配置php5.4
    Spring AOP监控SQL运行
    算法导论—无向图的遍历(BFS+DFS,MATLAB)
  • 原文地址:https://www.cnblogs.com/songsu/p/11301093.html
Copyright © 2020-2023  润新知