如何在PHP中建立壓縮的RAR檔案?
在網站中,上傳檔案大多數都是以壓縮包形式存在的,所以我們首先必須要將上傳的檔案壓縮後才能夠上傳,那麼我們如何?網站中上傳檔案的自動壓縮功能呢?今天就給大家詳細介紹一下!
檔案壓縮主要應用PHP 的預定義類 com,將wscrip.shell 對象作為 com類的參數,最終通過調用 com類的 run()方法實現檔案的壓縮。
com 類提供了一個將 COM組件整合到 PHP 指令碼中的架構,執行個體化方法如下:
$obj = new COM("server.object")
com類建構函式的文法如下:
string COM::COM( string module_name [, string server_name [, int codepage]] )
參數說明:
module_name:被請求組件的名字 或者 class-id。
server_name :DCOM 伺服器的名字,組件在此伺服器上被取用,如果是NULL,那麼假定是loaclhost。如果要支援允許DCOM,那麼必須將 php.ini 中的 com.allow_dcom設定為 TRUE。
codepage:指定用於將PHP 字串(php-string)轉換成UNICODE 字串(unicode-strings)的字碼頁,反之亦然。可用的值有CP_ACP , CP_MACCP , CO_OEMCP , CP_SYMBOL , CP_THREAD_ACP, CP_UTF7以及CP_UTF8。
com類中的 run()方法的文法格式如下:
run("winrar a 產生的 rar 檔案的路徑及名稱 要壓縮的檔案的路徑以及名稱",1,false);
應用執行個體
本執行個體中講解在PHP中如何建立 RAR檔案,具體步驟如下:
(1)建立PHP頁面,首先建立一個表單,設定檔案域,提交要壓縮的檔案,設定文字框,提交壓縮檔的儲存位置,設定按鈕,完成表單元素的提交操作。
(2) 在php檔案中編寫 PHP指令碼,通過post方法擷取表單提交的資料,通過iconv()函數完成資料編碼格式的轉換,執行個體化 com類,調用 run()方法完成檔案的壓縮操作。
其代碼如下:
<?phpheader("Content-Type:text/html; charset=utf-8");if ($_POST['Submit']){ $sourcefile = iconv("utf-8","gb2312",$_POST['sourcefile']); //擷取指定檔案的路徑 $objfile = $_POST['objfile']."\\".time(); //定義壓縮檔的儲存位置和名稱 $objfile = iconv("utf-8","gb2312",$objfile); //實現編碼轉換 $obj= new COM("wscript.shell"); //執行個體化 com類 $obj -> run("winrar a".$objfile."".$sourcefile."",1,false); //調用類中的方法 echo "<script>alert('檔案壓縮完成!');</script>";}?>
運行本執行個體,首先選擇要壓縮的檔案,然後設定壓縮檔的儲存位置,單擊“提交”按鈕,就完成了!
注意:
在執行檔案壓縮操作時,切記在檔案的儲存路徑中不要出現空格(包括被壓縮檔的路徑、名稱一級壓縮檔的儲存路徑),否則壓縮操作將不會正確執行!
到這裡我們就介紹完如何在PHP中建立壓縮的RAR檔案了,小夥伴們都掌握了嗎?