FileIO : Pixmicat! File I/O (v1)
有關新版FileIO請瀏覽這裡

概述

File IO 主要從祭典版的分支 FTP 版中所移植,藉由此一函式庫可以自由切換圖檔儲存的位置是遠端主機還是本機,並提供一套方法來讀寫圖檔資訊。

技術細節

運作方式

先讓 pixmicat.php 引入 lib_fileio.php ,被稱為 FileIO Kernel Switcher 的結構,再藉由設定檔的設定決定要真正引入的API。

<?php
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 為例:

<?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。

參見

除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.