FileIO : Pixmicat! File I/O (v1)
有關新版FileIO請瀏覽這裡。 |
概述
File IO 主要從祭典版的分支 FTP 版中所移植,藉由此一函式庫可以自由切換圖檔儲存的位置是遠端主機還是本機,並提供一套方法來讀寫圖檔資訊。
技術細節
運作方式
先讓 pixmicat.php 引入 lib_fileio.php ,被稱為 FileIO Kernel Switcher 的結構,再藉由設定檔的設定決定要真正引入的API。
if(USE_FTP==1) include_once('./fileio.ftp.php'); else include_once('./fileio.normal.php');
如果設定檔內的 USE_FTP 設定為 1 ,則引入 FileIO-FTP*1 (fileio.ftp.php) ,為 0 的話則引入普通的 FileIO (fileio.normal.php) ,此為操作檔案的FileIO API,內有一套制定週全的函式,供 Pixmicat! 程式使用。
API 列表
以 fileio.normal.php 為例:
/* File I/O Wrapper */ function file_func($action,$file='',$size='',$imgsize='') { switch($action) { case 'init': // 初始化 return true; case 'exist': // 檔案是否存在 if(!$file) return true; // Function exists return is_file($file); break; case 'size': // 檔案大小 if(!$file) return true; return @filesize($file); break; case 'imgsize': // 圖檔維度 if(!$file) return true; $wh = @GetImageSize($file); return $wh[0].'x'.$wh[1]; break; case 'del': // 刪除檔案 if(!$file) return true; if(is_array($file)) foreach($file as $fil) @unlink($fil); else return @unlink($file); break; /*** FTP版還有 case 'upload': ***/ default: // 其他操作 return false; } }
註解
- FileIO-FTP
- FileIO-FTP使用了log檔(flatfile)紀錄有關上傳檔案的名稱、大小、圖檔維度等資料。
- file_func 回傳方式
- 成功會回傳 true,失敗會回傳 false。也可用作測試該FileIO有沒有所要求的操作: FileIO-FTP 中執行 file_func('upload'); 會回傳 true,而普通的FileIO中執行 file_func('upload'); 會回傳 false。