php上传文件夹

用过浏览器的开发人员都对大文件上传与下载比较困扰,以前遇到了一个php文件夹上传下载的问题,无奈之下本身开发了一套文件上传控件,在这里分享一下。但愿能对你有所帮助。

功能介绍:
php

 

树形目录导航。您能够经过树型目录导航和路径导航栏快速跳转到指定目录。在跳转后树型目录将会自动选中当前的目录。
数据库

 

 

路径导航,点击根目录按钮即可返根目录json

 

 

文件和目录重命名浏览器

 

点击删除按钮服务器

说明: http://qqadapt.qpic.cn/adapt/0/a08d8c16-78a3-7ce5-c2cd-5df1e60fb8cc/800?pt=0&ek=1&kp=1&sce=0-12-12

点击肯定后,页面中的文件消失post



 

 

批量上传文件ui

 

粘贴上传url

复制文件夹、文件或图片spa

说明: http://qqadapt.qpic.cn/adapt/0/ab61b9d4-755b-ee18-376d-f4ac80ad6417/800?pt=0&ek=1&kp=1&sce=0-12-12

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

说明: http://qqadapt.qpic.cn/adapt/0/b9fa01e5-ebec-3887-6726-67dcbc1a77ef/800?pt=0&ek=1&kp=1&sce=0-12-12



 

 

批量上传文件和文件夹

 

 

数据库记录

 

 

文件和目录下载

 

批量下载

同时选择多个须要下载的文件 

而后点击下载按钮,设置下载目录文件夹

说明: C:\Users\Administrator\Desktop\2222.png



 

 

点击所有下载,开始下载

 

 

自动加载未上传完的任务。在刷新浏览器或重启电脑后仍然能够自动加载未完成的任务。

 

 

下载完成后打开咱们设置的下载目录文件夹,发现需下载的文件或文件夹确认已下载成功,经确认文件夹内的内容与下载文件夹内容一致

说明: http://qqadapt.qpic.cn/adapt/0/3224196a-396c-8ee1-b509-3179302fbd86/800?pt=0&ek=1&kp=1&sce=0-12-12

 

数据库记录

 

工程截图

文件块处理代码

https://blog.csdn.net/alisky119/article/details/91491383

<?php

ob_start();

/*

    控件每次向此文件POST数据

    逻辑:

         1.更新数据库进度

         2.将文件块数据保存到服务器中。

    更新记录:

         2014-04-09 增长文件块验证功能。

         2017-07-11

             简化文件块逻辑,

             取消进度更新操做

*/

require '../vendor/autoload.php';

require('biz/up6_biz_event.php');

require('model/FileInf.php');

require('utils/FileBlockWriter.php');

require('utils/HttpHeader.php');

require('utils/PathTool.php');

 

use utils\FileBlockWriter;

 

$head = new HttpHeader();

 

$uid         = $head->param("uid");

$fid         = $head->param("id");

$md5         = $head->param("md5");

$lenSvr           = $head->param("lenSvr");

$lenLoc           = $head->param("lenLoc");

$blockOffset = $head->param("blockOffset");

$blockSize        = $head->param("blockSize");

$blockIndex       = $head->param("blockIndex");

$blockMd5         = $head->param("blockMd5");

$complete         = (bool)$head->param("complete");

$pathSvr     = $_POST["pathSvr"];

$pathSvr     = PathTool::urldecode_path($pathSvr);

$pathTmp     = $_FILES['file']['tmp_name'];//

 

//相关参数不能为空

if (   (strlen($lenLoc)>0)

    && (strlen($uid)>0)

    && (strlen($fid)>0)

    && (strlen($blockOffset)>0)

    && !empty($pathSvr))

{

    $verify = false;

    $msg = "";

    $md5Svr = "";

   

    if(!empty($blockMd5))

    {

        $md5Svr = md5_file($pathTmp);

    }

   

    //验证大小

    $verify = intval($blockSize) == filesize($pathTmp);

    if( !$verify )

    {

        $msg = "block size error sizeSvr:" filesize($pathTmp) . " sizeLoc:" . $blockSize;

    }

   

    if( $verify && !empty($blockMd5) )

    {

         $verify = $md5Svr == $blockMd5;

         if(!$verify) $msg = "block md5 error";

    }

   

    if( $verify )

    {

         //保存文件块数据

         $fbw = new FileBlockWriter();

         if(0 == strcmp($blockIndex,"1")) $fbw->CreateFile($pathSvr,$lenLoc);

         $fbw->write($blockOffset, $lenLoc, $pathSvr, $pathTmp);

        

         up6_biz_event::file_post_block($fid, $blockIndex);

        

         $obj = Array('msg'=>'ok''md5'=>$md5Svr, 'offset'=>$blockOffset);

         $msg = json_encode($obj);

    }

    ob_clean();

    echo $msg;

}

else

{

    echo "param is null";

    echo "uid:$uid<br/>";

    echo "fid:$fid<br/>";

    echo "md5:$md5<br/>";

    echo "lenSvr:$lenSvr<br/>";

    echo "lenLoc:$lenLoc<br/>";

    echo "f_pos:$blockOffset<br/>";

    echo "complete:$complete<br/>";

    echo "pathSvr:$pathSvr<br/>";

}

header('Content-Length: ' ob_get_length());

?>

 

 

控件包下载:
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://j.mp/2MudPs3

相关文章
相关标签/搜索