相本 照片該如何存 一般的做法是將照片以用檔案的方式存在server上,雖然使用方便,但是管理麻煩,也有安全上的問題。在這裡使用資料庫的方式來儲存二進位的大型資料(包括圖片以及文件等),做法與一般的檔案管理稍有不同。

Slides:



Advertisements
Similar presentations
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Advertisements

第 7 章 数据库 1. Overview  数据库概述  数据库管理系统  数据库的体系结构和数据库模型  SQL 语言  数据库技术  构建数据库系统 2.
Web 开发基础 第二章 表格与页面布局. 回顾 Internet 和 万维网 网页的工作原理 网页的基本结构 标记及其属性 段落标记,图片标记,超级链接标记 相对路径,绝对路径,物理路径.
第15章 教学成绩管理系统的ASP实现 教学提示:本章主要通过案例《教学成绩管理系统(ASP版)》,演示以SQL Server 2000为后台数据库,用ASP进行B/S结构的数据库应用程序的开发。本教材提供了案例全部源代码及设计文档,请同学们进行阅读、研究,重点在了解B/S结构下的数据库应用程序的总体结构。
第八单元 数据库MySQL应用基础 MySQL数据库应用基础 MySQ数据库操作使用 Mysql管理工具 第25章 数据库的增加/删除操作
白玉苦瓜 余光中.
第6章 数据库管理软件Access 年秋.
SQL的简单查询.
第2讲 Transact-SQL语言.
数据库技术 实践.
第5章 HTML 標籤介紹.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
数据库概述 简而言之,数据库(DataBase)就是一个存储数据的仓库。为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。通过数据库管理系统,可以有效的组织和管理存储在数据库中的数据。如今,已经存在了Oracle、SQL Server、MySQL等诸多优秀的数据库。在这一章中将讲解的内容包括。
MySQL資料庫安全管理.
Views ,Stored Procedures, User-defined Function, Triggers
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
留言版 1.先Create一個留言板的table
Introduction to PHP part3
第六章 學習SQL語言.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 13 章 陣列應用.
PHP與MySQL連結 大葉大學 資工系 黃鈴玲.
LINQ 建國科技大學 資管系 饒瑞佶.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
PHP與SQL語法存取MySQL SQL
Ch13 存取MySQL資料庫 實作:會員管理系統
後端教學-MYSQL 講師:邱小楓(邱珈蓉)
第十一章 資料庫設計與權限設定.
行政院研究發展考核委員會 【網頁無障礙設計】說明會
連結資料庫 ACCESS MSSQL.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
資料庫操作.
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
实验 2:MS Access QBE Query使用
操作資料庫 教授:楊維邦 教授 助教:黃存賢 陳廷宣.
SQL Stored Procedure SQL 預存程序.
PHP+MySQL互動式網頁程式設計班 檔案上傳程式設計 講師:林業峻 CSIE, NTU 7 / 3, 2010.
Spring & mongodb java实战mongodb 曹巍 2013年9月22日.
SQL結構化查詢語言 SQL是 Structured Query Language 的縮寫,簡單的說,SQL是一種與資料庫溝通的共通語言,它是當時在 IBM 工作的 E.F. Codd於1970 年針對關聯式模型 ( relational model ),所建構出來的資料庫理論,也因此有了所謂關聯式資料庫的系統,但在發展的初期,由於各種關聯式資料庫系統廠商的.
App Inventor2呼叫PHP存取MySQL
檔案與磁碟的基本介紹.
第 10 章 数据库编程.
第20章 MySQL数据库.
PHP5與MySQL4 入門學習指南 凱文瑞克 著 第 16 章 檔案處理.
PHP +MySQL快速入門 Lesson 3.
W3C标准网页制作 主讲教师:张 涛.
第11章 ListView延迟加载效果 授课老师:高成珍 QQ号: QQ群: 、
認識資料庫 MySQL 資料庫新增 MySQL 資料表新增 認識欄位資料表 資料新增、刪除、修改、瀏灠 資料表清空與刪除
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
PHP與MySQL 入門學習指南 凱文瑞克 著 第 22 章 SQL 介紹與建立MySQL資料庫.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
SQL查询语句 蔡海洋.
期末考.
第六類 資料庫備份與回復.
網站(web) 授課:方順展.
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
Lesson 4 :基礎應用一(計數器) (2005/01/27).
SQL語法教學 2015/10/15 John.
從HTML表格到CSS 靜宜大學 資管系 楊子青.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
分頁.
資料結構與C++程式設計進階 期末考 講師:林業峻 CSIE, NTU 7/ 15, 2010.
連結資料庫 MYSQL.
資料庫應用與實作 一到六章重點、習題.
SQLite資料庫 靜宜大學資管系 楊子青.
Web安全基础教程
Presentation transcript:

相本 照片該如何存 一般的做法是將照片以用檔案的方式存在server上,雖然使用方便,但是管理麻煩,也有安全上的問題。在這裡使用資料庫的方式來儲存二進位的大型資料(包括圖片以及文件等),做法與一般的檔案管理稍有不同。

資料庫規劃 現在我們第二個實例是做校園相本,可以將一些活動相片整理並且上傳,放在WWW上供網友上線瀏灠 ,原則上我們必須要做到二項功能: 1.開放式的瀏灠空間,並且有縮圖以及圖片說明,加上分頁處理 2.有管理介面,可以任意新增、刪除以及修改每項記錄

資料庫 例如:建立一個album table,其中資料如下: 欄位資料型態說明 idint相片編號/流水號 namechar(30)相片名稱 detailchar(100)簡單說明 ownerchar(10)攝影者 ctimedatetime上傳日期 bigpicMEDIUMBLOB相片(原圖) smallpicMEDIUMBLOB相片(縮圖) type1char(20)原圖相片檔案型態   縮圖相片檔案型態 註:blob可以儲存大型資料,blob可分為tinyblob,medium blob,longblob分別可存儲存各種不同大小的資料。有關其資料範圍可以參考這裡

資料庫設定 MYSQL資料庫設定: $mysql -u root -p //建立 table album mysql>use dbname; mysql>create table album(id int unsigned not null auto_increment,name char(30),detail char(100),owner char(100),ctime datetime,bigpic mediumblob,smallpic mediumblob,type1 char(20),type2 char(20),primary key(id)); //grant 相關權限給iuser mysql> grant insert,delete,update,select on dbname.album to iuser@localhost identifi ed by '1234'; mysql> show columns from album;

Global.php 廣域設定檔:global.php <? $HOST="localhost"; $DB="dbname"; $TABLE1="album"; $USER="iuser"; $PASS="1234"; $PAGE=3; $MAXSIZE=1000000; ?>

新增相片表單 當我們按下「送出」按鈕,add.php必須執行新增一筆資料到資料庫的動作,如以下說明: if($submit) //按下submit { //連結資料庫 $link=mysql_pconnect($HOST,$USER,$PASS); mysql_select_db($DB,$link); //從上傳暫存檔讀取照片 $fd = fopen($userfile1, "rb"); $block = fread($fd, filesize($userfile1)); fclose($fd); //從上傳暫存檔讀取照片縮圖 $fd = fopen($userfile2, "rb"); $block2 = fread($fd, filesize($userfile2)); fclose($fd); //存入資料庫前處理跳脫字元 $block = addslashes($block); $block2 = addslashes($block2); //指定圖檔html型態 $type1=$userfile1_type; $type2=$userfile2_type; //INSERT SQL 指令,並指執行之 $str="INSERT INTO $TABLE1 (name,detail,owner,ctime,bigpic,smallpic,type1,type2) VALUES('$name','$detail','$owner',now(),'$block','$block2','$type1','$type2')"; mysql_query($str,$link); //回應新增成功 echo "<h1>您的相片資料已經新增了</h1>"; echo "<a href=viewpic.php>觀看相片</a>"; exit; } ?> 新增相片表單

如何在WEB上觀看資料庫裡的相片 因為相片己儲存在WEB上,所以我們不能用傳統的指定圖檔的方式來觀看圖片,如<IMG SRC="pic.gif">,我們必須用php程式來產生圖形,其php語法為://...讀取資料庫欄位.... Header( "Content-type: $type"); //$type為檔案型態,例如 html/gif 為gif檔 echo $pic_data; 我們利用相片的id來產生圖片,例如 getdata.php?id=2&big=yes 來取得編號為2的原相片,而 getdata.php?id=2 則產生編號為2為縮圖,我們可以:<IMG SRC="getdata.php?id=2&big=yes">來做圖片連結

如何在WEB上觀看資料庫裡的相片 <? if($id) { $HOST="localhost";$USER="iuser";$PASS="1234";$DB="airfire";$TABLE1="album"; //include("global.php"); mysql_pconnect($HOST,$USER,$PASS); @mysql_select_db($DB); if($big=="yes") $query = "select bigpic,type1 from $TABLE1 where id=$id"; else $query = "select smallpic,type2 from $TABLE1 where id=$id"; $result = @mysql_query($query); list($data,$type)=@mysql_fetch_row($result); Header( "Content-type: $type"); echo $data; }; ?>

分頁瀏覽相片縮圖 接著,我們要做一個瀏覽圖片縮圖的介面,每頁設定為三張,可以分頁顯示,這支程式只要稍微將前面的留言板程式修改一下就可以用了:

<? include("global.php"); //database連結 $link=mysql_pconnect($HOST,$USER,$PASS); mysql_select_db($DB); if(!isset($p) || $p <=0 ) $p=1; //若未設頁碼,預設為第1頁 //計算總筆數 $str="select count(*) from $TABLE1"; $result=mysql_query($str); list($total)=mysql_fetch_row($result); //計算總頁數 $totalpage=ceil($total/$PAGE); //計算目前頁數的起始植 $begin=($p-1)*$PAGE; //查詢本頁的留言資料 $str="select id,name,owner,detail,ctime from $TABLE1 order by ctime DESC LIMIT $begin,$PAGE"; $result=mysql_query($str); ?> <? while(list($id,$name,$owner,$detail,$ctime)=mysql_fetch_row($result)){ ?> <TABLE border=1 cellpadding="1" cellspacing="0" bordercolordark="#ffffff" bordercolorlight="#cccccc" class="TEXT11"> <TR> <TD width="134"> <? echo "<img src=getdata.php?id=".$id.">";?> </TD> <TD width="534" bgcolor="#E8E8E8"> <? echo "照片名稱:".$name."<br>"; echo "攝影人員:".$owner."<br>"; echo "上傳日期:".$ctime."<br>"; echo "照片說明:".$detail."<br>"; echo "<a href=getdata.php?id=".$id."&big=yes>"."看大照片</a>"; ?> </TD> </TR> </TABLE> <?} ?> 分頁瀏覽相片縮圖