<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[info] 操縱文件類 ~~~ <?php namespace base; /** * 例子: * CreateDir('a/1/2/3'); 建立文件夾 建一個a/1/2/3文件夾 * CreateFile('b/1/2/3'); 建立文件 在b/1/2/文件夾下面建一個3文件 * CreateFile('b/1/2/3.exe'); 建立文件 在b/1/2/文件夾下面建一個3.exe文件 * CopyDir('b','d/e'); 復制文件夾 建立一個d/e文件夾,把b文件夾下的內容復制進去 * CopyFile('b/1/2/3.exe','b/b/3.exe'); 復制文件 建立一個b/b文件夾,并把b/1/2文件夾中的3.exe文件復制進去 * MoveDir('a/','b/c'); 移動文件夾 建立一個b/c文件夾,并把a文件夾下的內容移動進去,并刪除a文件夾 * MoveFile('b/1/2/3.exe','b/d/3.exe'); 移動文件 建立一個b/d文件夾,并把b/1/2中的3.exe移動進去 * UnlinkFile('b/d/3.exe'); 刪除文件 刪除b/d/3.exe文件 * UnlinkDir('d'); 刪除文件夾 刪除d文件夾 */ /** * 操縱文件類 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-28 * @desc 支持所有文件存儲到硬盤 */ class FileUtil { /** * 建立文件夾 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $aim_url [目錄地址] * @return [boolean] [true | false] */ public static function CreateDir($aim_url) { // 根目錄前不參與,避免虛擬機沒有權限 $aim_dir = root_path(); $aim_url = str_replace($aim_dir, '', $aim_url); // 空轉成目錄 $aim_url = str_replace('', '/', $aim_url); $arr = explode('/', $aim_url); $result = true; foreach($arr as $str) { $aim_dir .= $str . '/'; if($aim_dir != '/' && !is_dir($aim_dir)) { $result = mkdir($aim_dir); } } return $result; } /** * 建立文件 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $aim_url [目錄地址] * @param [boolean] $over_write [該參數控制是否覆蓋原文件] * @return [boolean] [true | false] */ public static function CreateFile($aim_url, $over_write = false) { if(file_exists($aim_url) && $over_write == false) { return false; } elseif(file_exists($aim_url) && $over_write == true) { self::UnlinkFile($aim_url); } $aim_dir = dirname($aim_url); self::CreateDir($aim_dir); touch($aim_url); return true; } /** * 移動文件夾 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $old_dir [原地址] * @param [string] $aim_dir [新地址] * @param [boolean] $over_write [該參數控制是否覆蓋原文件] * @return [boolean] [true | false] */ public static function MoveDir($old_dir, $aim_dir, $over_write = false) { $aim_dir = str_replace('', '/', $aim_dir); $aim_dir = substr($aim_dir, -1) == '/' ? $aim_dir : $aim_dir . '/'; $old_dir = str_replace('', '/', $old_dir); $old_dir = substr($old_dir, -1) == '/' ? $old_dir : $old_dir . '/'; if(!is_dir($old_dir)) { return false; } if(!file_exists($aim_dir)) { self::CreateDir($aim_dir); } @$dir_handle = opendir($old_dir); if(!$dir_handle) { return false; } while(false !== ($file = readdir($dir_handle))) { if($file == '.' || $file == '..') { continue; } if(!is_dir($old_dir . $file)) { self::MoveFile($old_dir . $file, $aim_dir . $file, $over_write); } else { self::MoveDir($old_dir . $file, $aim_dir . $file, $over_write); } } closedir($dir_handle); return rmdir($old_dir); } /** * 移動文件 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $file_url [原文件] * @param [string] $aim_url [新文件] * @param [boolean] $over_write [該參數控制是否覆蓋原文件] * @return [boolean] [true | false] */ public static function MoveFile($file_url, $aim_url, $over_write = false) { if(!file_exists($file_url)) { return false; } if(file_exists($aim_url) && $over_write = false) { return false; } elseif(file_exists($aim_url) && $over_write = true) { self::UnlinkFile($aim_url); } $aim_dir = dirname($aim_url); self::CreateDir($aim_dir); rename($file_url, $aim_url); return true; } /** * 刪除文件夾 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $aim_dir [地址] * @param [boolean] $is_del_dir [是否刪除目錄] * @return [boolean] [true | false] */ public static function UnlinkDir($aim_dir, $is_del_dir = true) { $aim_dir = str_replace('', '/', $aim_dir); $aim_dir = substr($aim_dir, -1) == '/' ? $aim_dir : $aim_dir . '/'; if(!is_dir($aim_dir)) { return false; } $dir_handle = opendir($aim_dir); while(false !== ($file = readdir($dir_handle))) { if($file == '.' || $file == '..') { continue; } if(!is_dir($aim_dir . $file)) { self::UnlinkFile($aim_dir . $file); } else { self::UnlinkDir($aim_dir . $file, $is_del_dir); } } closedir($dir_handle); return $is_del_dir ? rmdir($aim_dir) : true; } /** * 刪除文件 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $aim_url [文件] * @return [boolean] [true | false] */ public static function UnlinkFile($aim_url) { $aim_url = str_replace('//', '/', $aim_url); if(file_exists($aim_url) && is_writable($aim_url)) { unlink($aim_url); return true; } else { return false; } } /** * 復制文件夾 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $old_dir [原地址] * @param [string] $aim_dir [新地址] * @param [boolean] $over_write [該參數控制是否覆蓋原文件] * @return [boolean] [true | false] */ public static function CopyDir($old_dir, $aim_dir, $over_write = false) { $aim_dir = str_replace('', '/', $aim_dir); $aim_dir = substr($aim_dir, -1) == '/' ? $aim_dir : $aim_dir . '/'; $old_dir = str_replace('', '/', $old_dir); $old_dir = substr($old_dir, -1) == '/' ? $old_dir : $old_dir . '/'; if(!is_dir($old_dir)) { return false; } if(!file_exists($aim_dir)) { self::CreateDir($aim_dir); } $dir_handle = opendir($old_dir); while(false !== ($file = readdir($dir_handle))) { if($file == '.' || $file == '..') { continue; } if(!is_dir($old_dir . $file)) { self::CopyFile($old_dir . $file, $aim_dir . $file, $over_write); } else { self::CopyDir($old_dir . $file, $aim_dir . $file, $over_write); } } closedir($dir_handle); return is_dir($aim_dir); } /** * 復制文件 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2018-06-29 * @desc description * @param [string] $file_url [原文件] * @param [string] $aim_url [新文件] * @param [boolean] $over_write [該參數控制是否覆蓋原文件] * @return [boolean] [true | false] */ public static function CopyFile($file_url, $aim_url, $over_write = false) { if(!file_exists($file_url)) { return false; } if(file_exists($aim_url) && $over_write == false) { return false; } elseif(file_exists($aim_url) && $over_write == true) { self::UnlinkFile($aim_url); } $aim_dir = dirname($aim_url); self::CreateDir($aim_dir); copy($file_url, $aim_url); return true; } /** * 文件下載 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2019-03-25 * @desc description * @param [string] $file_path [文件地址] * @param [string] $show_name [顯示名稱] */ public static function DownloadFile($file_path, $show_name) { if(is_file($file_path)) { //打開文件 $file = fopen($file_path,"r"); //返回的文件類型 Header("Content-type: application/octet-stream"); //按照字節大小返回 Header("Accept-Ranges: bytes"); //返回文件的大小 Header("Accept-Length: ".filesize($file_path)); //這里設置客戶端的彈出對話框顯示的文件名 Header("Content-Disposition: attachment; filename=".$show_name); // 清除前面輸出的內容 if(ob_get_length() > 0) { ob_clean(); flush(); } //一次性將數據傳輸給客戶端 //echo fread($file, filesize($file_path)); //一次只傳輸1024個字節的數據給客戶端 //向客戶端回送數據 $buffer = 1024; //判斷文件是否讀完 while(!feof($file)) { //將文件讀入內存 $file_data = fread($file, $buffer); //每次向客戶端回送1024個字節的數據 echo $file_data; } return true; } return false; } } ?> ~~~ * **例子:** ~~~ // 創建文件 $fileUtil = new \base\FileUtil(); $fileUtil->CreateFile('E:/xxx.json'); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看