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

相關文章
相關標籤/搜索