2010年9月27日 星期一

fopen的使用方式

由於在移植MSSQL資料時,包含圖片檔的部份也要一起移植,當時由於沒有提供FTP可以直接把圖片資料夾整個複製過來,所以採取了直接從網站圖片提供的路徑以及利用MSSQL存放圖片檔名的欄位來實現圖片檔案的移植

Created with colorer-take5 library. Type 'php'

<?php
//先把MYSQL連結資料庫引入
include("Include/open.php");
//MSSQL
$stuelearn=mssql_connect("mssql位置","帳號","密碼");
//選擇資料庫
mssql_select_db("資料庫名稱",$stuelearn);
//註解1:Convert由於mssql欄位類型為ntext在轉移存入時
MYSQL無法辨識所以需把ntext轉換為text
$ADRP=mssql_query("select class_id,title,
Convert(text,content) as content,site_url,image1,plug from store");
//利用while迴圈找尋所需資料
while($row=mssql_fetch_array($ADRP)) {
//轉換編碼
    $row['image1']=iconv("big5","utf8",trim($row['image1']));
//定義圖片位置
    $host="http://localhost/image/".$row['image1']."";
//定義存放位置(需以這支程式為基準)
    $source="../Upload/Attfile/";
    if(!empty($row['image1'])) {
         //利用fopen開啟圖片檔案路徑
        $fpHost = @fopen ($host, "rb");
        if ($fpHost) {
         //將檔案寫入
            $fpSource = @fopen($source.$row['image1'], "wb");
            if ($fpSource) {
                //feof函數檢測是否已到達文件末尾 
                while (!feof($fpHost)) {
                 //fputs函式寫入文件、fread讀取文件長度到8192
                    fputs($fpSource, fread($fpHost, 8192));
                }
            }
        }
        @fclose($fpHost);
        @fclose($fpSource);
    }
}
?>

沒有留言: