• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用PHP和MySQL保存和輸出圖片

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 35次 | 進入軟件測試論壇討論

    領測軟件測試網 設置數據庫
      我們通常在數據庫中所使用的文本或整數類型的字段和需要用來保存圖片的字段的不同之處就在于兩者所需要保存的數據量不同。MySQL數據庫使用專門的字段來保存大容量的數據,數據類型為BLOB。
      MySQL數據庫為BLOB做出的定義如下:BLOB數據類型是一種大型的二進制對象,可以保存可變數量的數據。BLOB具有四種類型,分別是TINYBLOB,BLOB, MEDIUMBLOB 和LONGBLOB,區別在于各自所能夠保存的最大數據長度不同。
      在介紹了所需要使用的數據類型之后,我們可以使用以下語句創建保存圖象的數據表。
      CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB );
    編寫上傳腳本
      關于如何實現文件的上傳,我們在這里就不再介紹了,感興趣的讀者可以參見“網頁陶吧”內的相關文章,F在,我們主要來看一下如何接收上傳文件并將其存入到MySQL數據庫中。具體的腳本代碼如下,其中我們假定文件上傳域的名稱為Picture。
    <?
    If($Picture != "none") {
    $PSize = filesize($Picture);
    $mysqlPicture = addslashes(fread(fopen($Picture, "r"), $PSize));
    mysql_connect($host,$username,$password) or die("Unable to connect to SQL server");
    @mysql_select_db($db) or die("Unable to select database");
    mysql_query("INSERT INTO Images (Image) VALUES ($mysqlPicture)") or die("Cant Perform Query");
    }else {
    echo"You did not upload any picture";
    }
    ?>
      這樣,我們就可以成功的把圖片保存到數據庫中。如果在將圖片插入MySQL的過程中出現問題,可以檢查一下MySQL數據庫所允許的最大數據包的大小。如果設置值過小的話,我們會在數據庫的錯誤日志中找到相應的記錄。
      下面,我們簡單說明一下上述腳本程序。首先,我們通過“If($Picture != "none")”檢查是否有文件被上傳。然后,使用addslashes()函數避免出現數據格式錯誤。最后,連接MySQL,選擇數據庫并插入圖片。
    顯示圖片
      在知道了如何將圖? 入數據庫之后,我們就需要考慮怎樣才能從數據庫中取出圖片并在HTML頁面中顯示出來。這個過程要稍微復雜一些,下面我們就來介紹一下實現過程。
    因為PHP顯示圖片需要發送相應的標頭,所以我們就會面臨這樣一個問題,那就是一次只能顯示一副圖片,因為我們無法在發出標頭之后再發送其它的標頭。
    為了有效的解決這一問題,我們編寫了兩個文件。其中,第一個文件作為HTML頁面的模板,定位圖片的顯示位置。第二個文件則被用來從數據庫中實際輸出文件流,作為<IMG>標簽的SRC屬性。
    第一個文件的簡單形式可以如下:
    <HTML> <BODY>
    <?
    mysql_connect($host,$username,$password) or die("Unable to connect to SQL server");
    @mysql_select_db($db) or die("Unable to select database");
    $result=mysql_query("SELECT * FROM Images") or die("Cant Perform Query");
    While($row=mysql_fetch_object($result)) {
    echo "<IMG SRC=\"Second.php3? PicNum=$row->PicNum\">";
    } ?>
    </BODY> </HTML>
      當HTML頁面被瀏覽時,每顯示一副圖片就會調用一次Second.php3文件。當第二個文件被調用時會傳入相應的Picture ID,我們可以借此從數據庫中取回對應的圖片并顯示。
    Second.php3文件如下:
    <?
    $result=mysql_query("SELECT * FROM Images WHERE PicNum=$PicNum") or die("Cant perform Query");
    $row=mysql_fetch_object($result);
    Header( "Content-type: image/gif");
    echo $row->Image;
    ?>
      到此,我們就介紹完了使用PHP和MySQL保存和顯示圖片的全過程。文中所舉得都是一些最簡單的實例,讀者可以根據自己的實際需要加入其它一些功能,使整個程序更加完善。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>