• 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

     

  • 相关阅读:
    精彩源于起点——2018年潍坊市首次青少年Python编程公开课
    第一款Micropython图形化编辑器—Python Editor
    [Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵
    Android-Notification通知Demo
    Android-Handler更新View加线程
    Android-Handler更新View
    Android-Service开发步骤
    Android-高级UI控件_TabHost标签组件
    Android-高级UI控件_SeekBar拖动条
    Android-高级UI控件_ProgressDialog进度条对话框
  • 原文地址:https://www.cnblogs.com/songsu/p/11301093.html
Copyright © 2020-2023  润新知