版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于PHP實(shí)現(xiàn)的WEB圖片共享系統(tǒng)</p><p><b> 摘 要</b></p><p> 本系統(tǒng)主要從現(xiàn)代社會(huì)電腦化觀念出發(fā),通過(guò)對(duì)現(xiàn)有資料的分析、研究和整理,確定了在基于現(xiàn)存的WEB2.0模式下開發(fā)圖片共享系統(tǒng)的可行性、緊迫性和必要性。在現(xiàn)階段,國(guó)內(nèi)基于WEB2.0的圖片共享系統(tǒng)才剛起步,該市場(chǎng)還有很大的介入空間。其中,在國(guó)外,已經(jīng)
2、有了很成熟的圖片共享平臺(tái)。在WEB2.0時(shí)代,信息由以前的服務(wù)器發(fā)布變成了用戶發(fā)布。也就是從以前的通過(guò)服務(wù)器搜集資源并且發(fā)布變成了通過(guò)用戶提供資源,服務(wù)器進(jìn)行整理,分類,發(fā)布的模式。而且這種模式對(duì)于一個(gè)網(wǎng)站的用戶吸引度也遠(yuǎn)遠(yuǎn)高于傳統(tǒng)模式。</p><p> 本論文旨在詳細(xì)說(shuō)明如何在基于PHP以及Ajax框架的環(huán)境下,使用MVC的開發(fā)模式,完成一個(gè)具有完整功能的圖片上傳以及圖片管理系統(tǒng),并能夠?qū)崿F(xiàn)方便的添加,刪除
3、圖片以及分類,后臺(tái)主要實(shí)現(xiàn)對(duì)用戶以及用戶的圖片進(jìn)行管理;能實(shí)現(xiàn)相關(guān)個(gè)人的設(shè)置更改。并且系統(tǒng)中對(duì)于圖片上傳需要有比較直觀的進(jìn)度顯示,圖片的呈現(xiàn)使用比較友善的顯示效果。</p><p> 關(guān)鍵詞:模型-視圖-控制器;圖片共享;Ajax</p><p> A Picture Share System Based on PHP</p><p><b> Ab
4、stract</b></p><p> This system mainly embarks from the modern society computerization. Based on existence information analysis, the research and the reorganization, we considered the pressing and the
5、necessity of implementing order form developing picture share system base on WEB2.0.At the present stage, the domestic picture share system based on WEB2.0 is just underway. There is expansive to take part in this field
6、, at the same time, mature picture share system aboard is already exist for a long time. In WEB2.0 </p><p> This thesis mainly describes how to developing fully functional pictures upload and picture manage
7、ment system. This system can easy to add, delete pictures and categories. In the backstage management, is mainly to implementing user and pictures management and user information changing. In this system, picture uploadi
8、ng is intuitionisticly showing, and the picture is need to be shown user friendly.</p><p> Key words: MVC; Picture Share; Ajax</p><p><b> 目 錄</b></p><p><b> 論文
9、總頁(yè)數(shù):36頁(yè)</b></p><p><b> 1引言1</b></p><p><b> 2系統(tǒng)概述1</b></p><p><b> 3總體設(shè)計(jì)2</b></p><p> 3.1系統(tǒng)需求分析2</p><p>
10、; 3.1.1圖片上傳需要支持的方式2</p><p> 3.1.2用戶上傳圖片需要支持的格式2</p><p> 3.1.3分類2</p><p> 3.1.4圖片管理2</p><p> 3.1.5圖片展現(xiàn)3</p><p> 3.1.6查詢功能3</p><
11、p> 3.1.7用戶管理3</p><p> 3.2總體結(jié)構(gòu)3</p><p> 3.3圖片共享系統(tǒng)流程3</p><p> 3.4圖片共享系統(tǒng)模塊功能介紹5</p><p> 3.4.1用戶界面子模塊劃分5</p><p> 3.4.2管理后臺(tái)子模塊劃分7</p>
12、<p><b> 4方案選擇8</b></p><p> 4.1方案比較8</p><p> 4.1.1系統(tǒng)模式比較8</p><p> 4.1.2程序語(yǔ)言比較8</p><p> 4.2方案選擇9</p><p> 4.3系統(tǒng)技術(shù)平臺(tái)9</
13、p><p> 4.4開發(fā)環(huán)境搭建9</p><p> 5實(shí)現(xiàn)技術(shù)與數(shù)據(jù)結(jié)構(gòu)12</p><p> 5.1系統(tǒng)架構(gòu)設(shè)計(jì)12</p><p> 5.1.1網(wǎng)絡(luò)架構(gòu)12</p><p> 5.1.2系統(tǒng)邏輯服務(wù)器12</p><p> 5.2系統(tǒng)處理流程13</p
14、><p> 5.2.1基于MVC的Smartemplate架構(gòu)13</p><p> 5.2.2SmartTemplate技術(shù)概述14</p><p> 5.2.3SmartTemplate與html模版之間的關(guān)系15</p><p> 5.3數(shù)據(jù)庫(kù)設(shè)計(jì)18</p><p> 5.3.1前臺(tái)用戶
15、主要數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)21</p><p> 5.3.2管理后臺(tái)數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)22</p><p> 6特殊問(wèn)題解決辦法24</p><p> 6.1亂碼問(wèn)題24</p><p> 6.2動(dòng)態(tài)顯示上傳進(jìn)度24</p><p> 6.3圖片隨意批量上傳問(wèn)題25</p><
16、;p> 7結(jié)果測(cè)試、性能分析29</p><p> 7.1運(yùn)行模塊組合29</p><p> 7.2系統(tǒng)登陸界面29</p><p> 7.3模塊應(yīng)用舉例30</p><p> 7.4系統(tǒng)現(xiàn)存問(wèn)題33</p><p> 7.4.1批量上傳連接的URL參數(shù)泄漏33</p&g
17、t;<p> 7.4.2批量上傳頁(yè)面源代碼中回調(diào)腳本泄漏用戶ID33</p><p> 7.4.3無(wú)法正常返回33</p><p> 7.5改進(jìn)意見(jiàn)34</p><p><b> 結(jié) 論34</b></p><p><b> 參考文獻(xiàn)34</b><
18、/p><p><b> 致 謝35</b></p><p><b> 聲 明36</b></p><p> 商業(yè)源代碼,全套計(jì)算機(jī)畢業(yè)設(shè)計(jì)免費(fèi)下載 http://www.ibaidusoft.com</p><p> 更多全套設(shè)計(jì)聯(lián)系QQ:1042897696</p>
19、<p> 最新設(shè)計(jì)大全 http://www.bylw168.com/sf/20100915/3539.html</p><p><b> 引言</b></p><p> 隨著前段時(shí)間WEB2.0的熱潮,整個(gè)BS開發(fā)方向和WEB的運(yùn)營(yíng)模式漸漸開始向另一個(gè)方向轉(zhuǎn)變。隨著AJAX的重新使用,大大提高了用戶的WEB體驗(yàn)。其頁(yè)面局部刷新的方式在很大程度上減
20、少了用戶訪問(wèn)頁(yè)面時(shí)所花的時(shí)間。并且讓用戶在提高體驗(yàn)的同時(shí),也能夠參與的內(nèi)容的提供者里面來(lái)。在傳統(tǒng)的WEB系統(tǒng)中,都是有某個(gè)網(wǎng)站的管理員,或者類似的人去收集網(wǎng)站所需要的資源,并且將這些資源發(fā)布出去,但是隨著WEB2.0的興起,分享和體驗(yàn)逐漸占據(jù)了網(wǎng)站發(fā)展的重要的位置。于是,網(wǎng)站從以前的集中發(fā)布式,漸漸的轉(zhuǎn)變成了用戶提供資源,網(wǎng)站整理發(fā)布的模式。其中最為常見(jiàn)的就是BLOG,WIKI這些形勢(shì)。其中圖片共享是很有發(fā)展?jié)摿Φ囊粋€(gè)方向。首先,中國(guó)擁
21、有數(shù)碼相機(jī)的人群正在以一個(gè)穩(wěn)定的數(shù)值在不斷增長(zhǎng),但是,目前沒(méi)有多少網(wǎng)站注意到了這片市場(chǎng)的潛力。當(dāng)用戶拍了照片后,他們會(huì)找一個(gè)可以方便的共享自己所拍的照片的地方。但是,現(xiàn)在傳統(tǒng)的網(wǎng)站,要么操作太復(fù)雜,要么就是不方便共享,比如163,不支持外部連接圖片,雖然這樣做的確可以明顯的降低服務(wù)器的負(fù)擔(dān),但是對(duì)用戶體驗(yàn)卻大大折扣。試想,當(dāng)一個(gè)用戶想直接給朋友看他某個(gè)相冊(cè)里面的某一張圖片的時(shí)候,</p><p> 就目前看來(lái),
22、圖片共享系統(tǒng)現(xiàn)在需要解決的問(wèn)題主要是如何更快的讓用戶上傳圖片。如何以更快的形式顯示圖片。其中,影響到系統(tǒng)開發(fā)的主要有以下問(wèn)題:1、市場(chǎng)競(jìng)爭(zhēng),2、軟件的可用性,穩(wěn)定性,3、時(shí)間限制。由于目前已經(jīng)有部分市場(chǎng)被前期對(duì)手搶占,所以需要在盡可能短的時(shí)間內(nèi)開發(fā)出一個(gè)可用的網(wǎng)站系統(tǒng)。該系統(tǒng)初步分為兩個(gè)部分,一個(gè)是作為WEB界面的WEB端,還有一個(gè)部分是用來(lái)通過(guò)C/S模式遠(yuǎn)程上傳本地圖片的客戶端工具。</p><p><b
23、> 系統(tǒng)概述</b></p><p> 在對(duì)于由經(jīng)用戶提交的的方式來(lái)實(shí)現(xiàn)圖片共享,首要就是提高用戶上傳效率,以及用戶上傳體驗(yàn)和用戶的瀏覽是否方便。一般的圖片共享網(wǎng)站都是通過(guò)很單一的上傳頁(yè)面對(duì)文件進(jìn)行上傳,并且展現(xiàn)形式單一化,不方便用戶使用和查看。在WEB2.0下,誕生了大批用于增強(qiáng)用戶體驗(yàn)的控件,使得圖片共享比傳統(tǒng)的形式更加的美觀以及人性化。</p><p> 而且
24、除了需要良好的用戶體驗(yàn)外,還需要良好的系統(tǒng)支持。不僅僅是程序,而是隨著用戶需求可以不斷拓展的業(yè)務(wù)平臺(tái),以及發(fā)展流程。本畢業(yè)設(shè)計(jì)就是根據(jù)目前WEB2.0的需求和特點(diǎn)有針對(duì)的利用現(xiàn)在比較成熟的框架所編寫。</p><p> 應(yīng)用WEB2.0中已經(jīng)成熟的框架接口可以大大加快目前高可用性應(yīng)用的開發(fā)以及設(shè)計(jì)。并且能夠從用戶角度來(lái)設(shè)計(jì)一個(gè)應(yīng)用。大大減輕了設(shè)計(jì)的壓力以及風(fēng)險(xiǎn)。該系統(tǒng)能夠通過(guò)多種方式來(lái)對(duì)用戶的圖片進(jìn)行上傳以及管
25、理。并且使用了現(xiàn)在比較流行的視覺(jué)框架來(lái)實(shí)現(xiàn)圖片的呈現(xiàn),大大改進(jìn)了用戶體驗(yàn)。</p><p><b> 總體設(shè)計(jì)</b></p><p><b> 系統(tǒng)需求分析</b></p><p> 圖片共享,有三個(gè)方面需要考慮:一,用戶應(yīng)該以什么方式上傳圖片;二,用戶可以上傳的圖片有哪些類型;三,應(yīng)該以什么方式展示這些圖片。另外
26、,還應(yīng)該實(shí)現(xiàn)對(duì)圖片的簡(jiǎn)單整理以及統(tǒng)計(jì)。</p><p> 因此,將上傳圖片的用戶和瀏覽圖片的用戶作為系統(tǒng)服務(wù)的主要目標(biāo),對(duì)系統(tǒng)的功能提出了如下需求:</p><p> 圖片上傳需要支持的方式</p><p> 圖片上傳應(yīng)該支持目前使用最多的頁(yè)面表單方式。并且可以對(duì)其進(jìn)行簡(jiǎn)單的處理。</p><p> 除此之外,最好還要支持客戶端方式。
27、并且需要實(shí)現(xiàn)在用戶不安裝客戶端的情況下,在WEB上實(shí)現(xiàn)批量上傳圖片。</p><p> 用戶上傳圖片需要支持的格式</p><p> 一種是JPEG一種是PNG,現(xiàn)在大多數(shù)的數(shù)碼相機(jī)都是使用JPEG格式保存圖片,但是考慮到版權(quán)問(wèn)題,也應(yīng)提供PNG格式圖片的支持。</p><p><b> 分類</b></p><p&g
28、t; 圖片上傳后,根據(jù)圖片的標(biāo)簽以及圖片所在任務(wù)自動(dòng)將圖片按照標(biāo)簽以及任務(wù)進(jìn)行分類</p><p><b> 圖片管理 </b></p><p> 圖片管理應(yīng)該包括的基本內(nèi)容:圖片的刪除,圖片的添加,圖片分類的添加以及刪除,圖片任務(wù)的添加以及刪除,圖片標(biāo)簽的添加以及刪除。</p><p> 同時(shí),在圖片管理中,用戶能夠以比較直觀的方式查
29、看自己上傳的圖片。</p><p><b> 圖片展現(xiàn)</b></p><p> 應(yīng)該能夠很直觀的展示給最終用戶進(jìn)行查看。</p><p><b> 查詢功能</b></p><p> 用戶需要了解自己的分類下的圖片總量以及任務(wù)下的圖片情況,又因?yàn)橛脩艨赡苄枰鶕?jù)不同的情況下,對(duì)自己的分類,
30、任務(wù)下的圖片情況做統(tǒng)計(jì),因此該系統(tǒng)還應(yīng)具有分類,任務(wù),標(biāo)簽的多條件組合查詢功能。</p><p> 由于該系統(tǒng)為多用戶系統(tǒng),系統(tǒng)后臺(tái)還應(yīng)該具有用戶管理功能</p><p> 用戶管理包括的功能如下:用戶的添加,刪除,查詢。以及對(duì)用戶圖片的查看,刪除;對(duì)用戶的分類的查看,刪除;對(duì)用戶標(biāo)簽的查看,刪除。</p><p><b> 總體結(jié)構(gòu)</b&g
31、t;</p><p> 圖片共享系統(tǒng)主要功能模塊結(jié)構(gòu)示意圖如下:</p><p> 圖3-1 圖片共享系統(tǒng)功能模塊圖</p><p> 圖片共享系統(tǒng)包括兩大部分:用戶界面和后臺(tái)管理,其中用戶界面為用戶可視并且可使用的功能,后臺(tái)管理為管理員所能使用的功能。</p><p><b> 圖片共享系統(tǒng)流程</b><
32、/p><p> 圖片共享系統(tǒng)流程設(shè)計(jì)思想如下:</p><p> 用戶(這里主要指直接使用本系統(tǒng)的最終用戶,不包括后臺(tái)具有管理功能的用戶)根據(jù)自己的圖片格式,選擇合適的圖片上傳到本系統(tǒng)的處理端。</p><p> 系統(tǒng)在接到用戶上傳的圖片后,應(yīng)根據(jù)系統(tǒng)當(dāng)前所允許上傳的圖片的類型判斷用戶所上傳的文件是否符合系統(tǒng)的要求,確定用戶為上傳圖片所分配的標(biāo)簽,依據(jù)上傳圖片的設(shè)
33、置對(duì)圖片進(jìn)行分類以及更改格式,此時(shí)的圖片并非最后存儲(chǔ)在系統(tǒng)中的圖片,該圖片在經(jīng)過(guò)裁減以及根據(jù)系統(tǒng)設(shè)定更改后的格式進(jìn)行存儲(chǔ)。(這樣做,是為了統(tǒng)一圖片的格式,便于輸出的處理以及圖片入庫(kù)時(shí)統(tǒng)一處理接口。)</p><p> 圖片添加成功后,將上傳的圖片直接緩存到用戶所在的文件夾下,按照上傳日期排列,并且同時(shí)在數(shù)據(jù)庫(kù)中保存圖片的副本。</p><p> 圖片在存儲(chǔ)后,同時(shí)在前臺(tái)顯示已經(jīng)上傳的圖
34、片,并且將圖片添加到所設(shè)定的標(biāo)簽下,并且按照任務(wù)對(duì)圖片進(jìn)行分批顯示。</p><p> 用戶在用戶管理臺(tái)里面可以對(duì)當(dāng)前所有圖片進(jìn)行管理,用戶刪除圖片時(shí),可以按照單個(gè)圖片,分類,標(biāo)簽,以及任務(wù)對(duì)圖片進(jìn)行刪除操作。</p><p> 已經(jīng)上傳的圖片,可以通過(guò)用戶查看圖片的連接直接提供給第三方用戶進(jìn)行查看?;蛘咧苯油ㄟ^(guò)系統(tǒng)生成的連接發(fā)送給第三方用戶進(jìn)行查看。</p><p
35、> 后臺(tái)管理員可以通過(guò)系統(tǒng)提供的功能直接對(duì)管理用戶進(jìn)行添加以及更改。當(dāng)需要具體賦予用戶某個(gè)功能時(shí),可以通過(guò)更改后臺(tái)用戶的細(xì)節(jié)設(shè)定來(lái)更改用戶權(quán)限。</p><p> 管理員在需要?jiǎng)h除某個(gè)用戶的上傳圖片時(shí),也可通過(guò)統(tǒng)一的圖片管理接口對(duì)用戶的圖片,分類,標(biāo)簽以及任務(wù)進(jìn)行刪除。</p><p> 圖片共享系統(tǒng)流程圖如下:</p><p> 圖3-2 圖片共享系
36、統(tǒng)流程圖</p><p> 圖片共享系統(tǒng)模塊功能介紹</p><p> 圖片共享系統(tǒng),主要完成圖片的添加,刪除以及圖片標(biāo)簽的添加,刪除功能。以及對(duì)多用戶的管理以及在后臺(tái)對(duì)用戶的圖片進(jìn)行管理。以下是子模塊劃分以及各模塊的功能介紹。</p><p><b> 用戶界面子模塊劃分</b></p><p> 圖3-3用戶
37、界面子模塊結(jié)構(gòu)圖</p><p> 用戶界面子模塊 — 密碼修改</p><p> 密碼修改,作為用戶界面子模塊的一部分,主要完成用戶密碼修改的工作。執(zhí)行流程是:用戶在登陸到主界面后,點(diǎn)擊導(dǎo)航欄上的密碼修改,轉(zhuǎn)向到修改用戶密碼的界面。在輸入當(dāng)前使用密碼以及修改的密碼并且重復(fù)輸入一次修改的密碼,最后填入該操作的驗(yàn)證碼(為了方便用戶,驗(yàn)證碼已經(jīng)由后臺(tái)自動(dòng)填入)。當(dāng)以上操作完成后,用戶點(diǎn)擊提
38、交以對(duì)密碼進(jìn)行修改。</p><p> 在用戶提交修改內(nèi)容時(shí),頁(yè)面內(nèi)的代碼首先檢測(cè)用戶兩次修改的密碼是否一致。如果不一致,將提示用戶密碼不一致。當(dāng)該檢查通過(guò)后,信息提交到后臺(tái)系統(tǒng)。后臺(tái)系統(tǒng)首先判斷驗(yàn)證碼是否相同,如果相同,將比較用戶輸入的當(dāng)前密碼散列是否和數(shù)據(jù)庫(kù)中的密碼散列一致。當(dāng)兩個(gè)散列一致時(shí),后臺(tái)系統(tǒng)將修改用戶當(dāng)前的密碼為用戶修改后的密碼。如果用戶沒(méi)有輸入驗(yàn)證碼或者驗(yàn)證碼出錯(cuò),當(dāng)前用戶密碼散列無(wú)法和數(shù)據(jù)庫(kù)中
39、的密碼散列對(duì)應(yīng),系統(tǒng)將給出對(duì)應(yīng)的出錯(cuò)提示。并要求用戶重新填寫。</p><p> 用戶界面子模塊 — 上傳圖片</p><p> 上傳圖片,在用戶登陸系統(tǒng)后,點(diǎn)擊導(dǎo)航欄上的上傳圖片,進(jìn)入上傳圖片功能頁(yè)面。此時(shí),用戶可以根據(jù)自己的需要選擇單個(gè)圖片進(jìn)行上傳或者直接批量上傳多個(gè)圖片。1)對(duì)單個(gè)頁(yè)面進(jìn)行上傳:這種上傳需要用戶自己過(guò)濾不符合系統(tǒng)需求的圖片,當(dāng)前系統(tǒng)只支持JPEG以及PNG。如果圖
40、片格式不符合要求,系統(tǒng)將給出出錯(cuò)提示。當(dāng)用戶所選擇的圖片格式無(wú)誤,并點(diǎn)擊“開始上傳”,此時(shí),系統(tǒng)會(huì)彈出一個(gè)設(shè)置圖片信息的對(duì)話框,需要用戶選擇該圖片的類型,以及設(shè)置該圖片的標(biāo)簽還有該圖片的名稱等信息。當(dāng)一切設(shè)置完畢后,點(diǎn)擊“提交上傳”,用戶圖片開始上傳到系統(tǒng)中。2)直接批量上傳多個(gè)圖片:用戶點(diǎn)擊“批量上傳”標(biāo)簽,系統(tǒng)提示該功能需要JAVA運(yùn)行時(shí)支持,確認(rèn)后,進(jìn)入批量圖片信息設(shè)定頁(yè)面,該頁(yè)面用于設(shè)置接下來(lái)所上傳的圖片的名稱,描述,分類,標(biāo)簽
41、等信息。接下來(lái)將轉(zhuǎn)入批量上傳界面。具體的操作步驟說(shuō)明在批量上傳頁(yè)面中有詳細(xì)的說(shuō)明。</p><p> 用戶界面子模塊 — 管理圖片</p><p> 管理圖片,在用戶登陸系統(tǒng)后,點(diǎn)擊導(dǎo)航欄上的上傳圖片,進(jìn)入圖片管理頁(yè)面。</p><p> 該頁(yè)面分為上中下3個(gè)部分,分別為用戶圖片按照任務(wù),分類,標(biāo)簽進(jìn)行分類后的圖片列表。在這個(gè)列表里,用戶可以對(duì)圖片按照任務(wù),分
42、類,或者標(biāo)簽等批量對(duì)圖片進(jìn)行操作。同時(shí),在該功能頁(yè)面中,也可以對(duì)分類,任務(wù),標(biāo)簽進(jìn)行刪除操作。</p><p><b> 管理后臺(tái)子模塊劃分</b></p><p> 圖3-4管理后臺(tái)子模塊結(jié)構(gòu)圖</p><p> 管理后臺(tái)子模塊 — 系統(tǒng)管理</p><p> 系統(tǒng)管理作為后臺(tái)管理的一個(gè)重要部分,主要是用于設(shè)置
43、當(dāng)前系統(tǒng)的環(huán)境變量,以及一些說(shuō)明性的信息。主要是由后臺(tái)管理員對(duì)系統(tǒng)進(jìn)行維護(hù)以及系統(tǒng)初始化的時(shí)候確定這些設(shè)置。在設(shè)置完成后,如果不是系統(tǒng)性能問(wèn)題或者系統(tǒng)遷移,均可以保持設(shè)定的信息。</p><p> 這個(gè)功能為系統(tǒng)提供了比較方便的擴(kuò)展系統(tǒng)環(huán)境變量的方法。便于后期對(duì)系統(tǒng)的常規(guī)設(shè)定的修改以及方便系統(tǒng)的簡(jiǎn)單遷移,例如系統(tǒng)更換域名或者更改其他系統(tǒng)環(huán)境信息。</p><p> 系統(tǒng)信息表中記錄了系
44、統(tǒng)的每個(gè)設(shè)定,對(duì)該模塊進(jìn)行修改最后將反饋到系統(tǒng)信息表中。</p><p> 管理后臺(tái)子模塊 — 管理員管理</p><p> 管理員管理,主要是用于設(shè)置能夠?qū)Ξ?dāng)前系統(tǒng)后臺(tái)的功能進(jìn)行操作的用戶,以及設(shè)置這些用戶可以使用后臺(tái)哪些功能。該功能使得后臺(tái)管理更為靈活,可以方便的進(jìn)行權(quán)限托管。并且可以設(shè)置對(duì)某個(gè)功能專門進(jìn)行操作的管理人員,簡(jiǎn)化了管理的復(fù)雜程度。</p><p&g
45、t; 這個(gè)功能為系統(tǒng)提供了比較方便的擴(kuò)展系統(tǒng)管理團(tuán)隊(duì)的方法。以便于在中后期對(duì)某個(gè)功能管理達(dá)到一定要求時(shí)可以對(duì)該功能賦予專用人員。</p><p> 同時(shí),該模塊也提供了修改管理員信息的功能。可以方便的使該管理員在各個(gè)功能之間實(shí)現(xiàn)切換以及更改現(xiàn)有權(quán)限。</p><p> 管理后臺(tái)子模塊 — 用戶管理</p><p> 用戶管理用于管理當(dāng)前系統(tǒng)中已經(jīng)正常注冊(cè)并且
46、使用本系統(tǒng)的圖片共享功能的用戶。用戶要注冊(cè)該系統(tǒng),除了可以在前臺(tái)提供的注冊(cè)頁(yè)面注冊(cè)外,也可以由具有用戶管理權(quán)限的后臺(tái)管理員在后臺(tái)進(jìn)行添加。除了用戶能在自己的管理面板修改自己的信息之外,管理員可以通過(guò)該模塊的用戶編輯功能對(duì)用戶信息進(jìn)行修改。同時(shí),可以通過(guò)搜索功能來(lái)定位特定用戶名的用戶,便于更快的找到需要操作的用戶。</p><p> 管理后臺(tái)子模塊 — 圖片管理</p><p> 圖片管
47、理用于管理當(dāng)前系統(tǒng)中已經(jīng)正常注冊(cè)并且使用本系統(tǒng)的圖片共享功能的用戶所上傳的圖片。</p><p> 在該模塊中,后臺(tái)管理員可以根據(jù)單個(gè)用戶對(duì)該用戶所上傳的圖片進(jìn)行管理。管理用戶圖片的界面和用戶前臺(tái)的管理界面相同。另外,和用戶管理一樣,后臺(tái)管理員也可以通過(guò)搜索特定的用戶名來(lái)快速定位到某個(gè)用戶,并且對(duì)他所上傳的圖片進(jìn)行管理。</p><p> 在用戶上傳圖片的過(guò)程中,有可能由于用戶的誤操作
48、導(dǎo)致用戶所上傳的圖片沒(méi)有分類或者沒(méi)有標(biāo)簽,這種情況下,管理員可以使用圖片清理功能將這些圖片清理掉。避免冗余以及錯(cuò)誤數(shù)據(jù)導(dǎo)致的系統(tǒng)不穩(wěn)定或者統(tǒng)計(jì)數(shù)據(jù)出錯(cuò)。</p><p><b> 方案選擇</b></p><p><b> 方案比較</b></p><p><b> 系統(tǒng)模式比較</b><
49、/p><p> 目前開發(fā)模式主要有C/S結(jié)構(gòu)和B/S結(jié)構(gòu):</p><p> C/S結(jié)構(gòu),即Client/Server(客戶機(jī)/服務(wù)器)結(jié)構(gòu),是大家熟知的軟件系統(tǒng)體系結(jié)構(gòu),通過(guò)將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開銷,可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì)。 </p><p> B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),
50、是隨著Internet技術(shù)的興起,對(duì)C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過(guò)WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。B/S結(jié)構(gòu)利用不斷成熟和普及的瀏覽器技術(shù)實(shí)現(xiàn)原來(lái)需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。</p><p><b> 程序語(yǔ)言比較</b></p><p
51、> 目前流行的程序開發(fā)語(yǔ)言主要有ASP 和 JSP和PHP:</p><p> ASP全名Active Server Pages,是一個(gè)WEB服務(wù)器端的開發(fā)環(huán)境,利用它可以產(chǎn)生和執(zhí)行動(dòng)態(tài)的、互動(dòng)的、高性能的WEB服務(wù)應(yīng)用程序。ASP采用腳本語(yǔ)言VBScript(Java script)作為自己的開發(fā)語(yǔ)言。 </p><p> JSP是Sun公司推出的新一代網(wǎng)站開發(fā)語(yǔ)言,Java
52、 Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序。 </p><p> PHP,即“PHP: Hypertext Preprocessor”,是一種被廣泛使用的開放源代碼多用途腳本語(yǔ)言,尤其適用于 web 開發(fā)并可以嵌入到 HTML 中去。</p><p> 三者都提供在 HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代
53、碼的能力。但JSP代碼被編譯成 Servlet并由Java虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。在PHP、ASP 、JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的 HTML頁(yè)面只依賴于Web服務(wù)器,而PHP、ASP 、JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。PHP、ASP 、JSP兩者都是面向
54、Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。</p><p> 然而,相較與ASP , JSP,PHP有其便于部署,可快速開發(fā)并且使用靈活等特點(diǎn)。比較適合于做中小型系統(tǒng)的快速開發(fā),同等相較于JSP,PHP由于沒(méi)有那么復(fù)雜的處理,所以在一定程度上執(zhí)行速度優(yōu)于JSP。</p><p><b> 方案選擇</b></p><p>
55、 綜上所述,本系統(tǒng)開發(fā)選擇方案如下:</p><p> 本圖片共享系統(tǒng)采用PHP、JavaScript作為主要程序開發(fā)語(yǔ)言,采用smarttemplate + 獨(dú)立后臺(tái)管理模版的構(gòu)架, mysql數(shù)據(jù)庫(kù)。采用B/S結(jié)構(gòu)。系統(tǒng)界面美觀內(nèi)容豐富,很好的實(shí)現(xiàn)了與用戶的交互。</p><p><b> 系統(tǒng)技術(shù)平臺(tái)</b></p><p> 開發(fā)
56、環(huán)境:WindowsServer2003 Datacenter Edition SP1、MySql 4.2、Apache2;</p><p> 開發(fā)工具:ZendStudio、 DreamweaverMX、PhotoShop、記事本;</p><p> 系統(tǒng)構(gòu)架:PHP+Smarttemplate+JavaScript+MySql4.2;</p><p> 開
57、發(fā)語(yǔ)言:PHP5。</p><p><b> 開發(fā)環(huán)境搭建</b></p><p><b> 配置PHP 5</b></p><p> 將從網(wǎng)絡(luò)上下載下來(lái)的文件解包,然后需要以下操作:</p><p> 打開php.ini文件,修改以下內(nèi)容:</p><p> ma
58、x_execution_time = 600;</p><p> max_input_time = 600;</p><p> memory_limit = 16M</p><p> post_max_size = 20M</p><p> file_uploads = On</p><p> upload_
59、max_filesize = 20M</p><p> default_socket_timeout = 60</p><p> 以上選項(xiàng)避免由于用戶上傳過(guò)大的圖片導(dǎo)致PHP處理超時(shí)。</p><p> register_globals = Off</p><p> magic_quotes_gpc = On</p>&
60、lt;p> 以上選項(xiàng)為防止用戶惡意提交。</p><p> extension_dir = "D:\PHP\PHP\ext"</p><p> 以上選項(xiàng)用于設(shè)定PHP的擴(kuò)展所在文件夾。</p><p> extension=php_mbstring.dll</p><p> 該擴(kuò)展用于支持長(zhǎng)字符集</
61、p><p> extension=php_exif.dll</p><p> 該擴(kuò)展用于支持PHP讀取圖片的EXIF信息。</p><p> extension=php_gd2.dll</p><p> 該擴(kuò)展用于PHP對(duì)圖片的操作以及驗(yàn)證碼的生成操作。</p><p> extension=php_mysql.
62、dll</p><p> extension=php_mysqli.dll以上兩項(xiàng)用于PHP對(duì)MYSQL的支持</p><p> extension=php_sockets.dll</p><p> 該擴(kuò)展用于PHP對(duì)SOCKET的支持,主要用于支持上傳時(shí)顯示上傳進(jìn)度的UPU庫(kù)</p><p> Apache 2.0</p>
63、;<p> 將從網(wǎng)絡(luò)上下載下來(lái)的文件解包,然后需要以下操作:</p><p> 修改Apache的配置文件:</p><p> 進(jìn)入到解包根目錄下的conf目錄。打開httpd.conf文件,修改以下內(nèi)容:</p><p> 設(shè)置執(zhí)行超時(shí):Timeout 300</p><p> 設(shè)置監(jiān)聽80端口:L
64、isten 80</p><p> 開啟APACHE對(duì)PHP的支持:</p><p> LoadModule php5_module d:/php/php/php5apache2.dll</p><p> 開啟URL重寫功能:LoadModule rewrite_module modules/mod_rewrite.so</p><p>
65、; 設(shè)定WEB服務(wù)的根目錄:DocumentRoot "E:\web"</p><p> 設(shè)置URL重寫所生效的范圍:<Directory /></p><p> Options FollowSymLinks</p><p> AllowOverride ALL</p><p> </D
66、irectory></p><p><b> 設(shè)置中文支持:</b></p><p> AddLanguage zh-CN .zh-cn</p><p> AddLanguage zh-TW .zh-tw</p><p> AddLanguage zh-cn .cn</p><p>
67、<b> 設(shè)置默認(rèn)語(yǔ)言</b></p><p> AddDefaultCharset GB2312</p><p><b> 設(shè)置默認(rèn)索引頁(yè):</b></p><p> DirectoryIndex index.html index.html.var index.htm index.php</p>&
68、lt;p> 設(shè)置APACHE對(duì)PHP文件進(jìn)行解析:</p><p> AddType application/x-httpd-php .php</p><p> 將APACHE安裝為服務(wù):</p><p> 進(jìn)入命令行,轉(zhuǎn)到APACHE文件夾下的BIN文件夾,執(zhí)行以下命令:</p><p> apache -k install
69、</p><p> 啟動(dòng)APACHE服務(wù)器</p><p><b> 執(zhí)行以下命令:</b></p><p> net start apache2</p><p><b> mysql安裝</b></p><p> 將從網(wǎng)上下載的MYSQL解包,然后修改其配置文件如
70、下:</p><p> default-character-set=utf8//由于整個(gè)系統(tǒng)均使用UTF-8,故數(shù)據(jù)庫(kù)也統(tǒng)一文字編碼</p><p> key_buffer_size=20M</p><p> max_allowed_packet=15M//以上設(shè)置用于處理將圖片存入數(shù)據(jù)庫(kù)的大量信息數(shù)據(jù)。</p><p> 運(yùn)
71、行MySQLInstanceConfig.exe對(duì)MYSQL進(jìn)行初始化設(shè)置。</p><p><b> 安裝MYSQL服務(wù)</b></p><p> 執(zhí)行mysqld-nt.exe –install將MYSQL進(jìn)程作為系統(tǒng)服務(wù)運(yùn)行。</p><p> 使用MYSQLADMIN對(duì)MYSQL的管理員進(jìn)行管理</p><p
72、> PHPMYADMIN配置</p><p> 找到phpmysdmin的配置文件,修改以下地方。</p><p> $cfg['Servers'][$i]['host'] = 'localhost';//設(shè)置為本機(jī)(只做調(diào)試用)</p><p> $cfg['Servers
73、39;][$i]['port'] = '3306';//MySQL的端口</p><p> $cfg['Servers'][$i]['connect_type'] = 'tcp';//設(shè)置與MySQL連接的方式 </p><p> $cfg['Servers'][$i][
74、'compress'] = FALSE;//使用壓縮協(xié)議進(jìn)行傳輸 </p><p> $cfg['Servers'][$i]['auth_type'] = 'config';//如果PHP安裝模式為Apache,可以使用http和cookie;如果PHP安裝模式為CGI,可以使用cookie;默認(rèn)為config</p>
75、<p> $cfg['Servers'][$i]['user'] = 'root';//MySQL連接用戶</p><p> $cfg['Servers'][$i]['password'] = '';//MySQL連接密碼</p><p><b&
76、gt; 實(shí)現(xiàn)技術(shù)與數(shù)據(jù)結(jié)構(gòu)</b></p><p><b> 系統(tǒng)架構(gòu)設(shè)計(jì)</b></p><p><b> 網(wǎng)絡(luò)架構(gòu)</b></p><p> 整個(gè)網(wǎng)絡(luò)架構(gòu)體系如下圖:</p><p> 圖5-1 圖片共享系統(tǒng)網(wǎng)絡(luò)構(gòu)架圖</p><p><b&g
77、t; 系統(tǒng)邏輯服務(wù)器</b></p><p> 在邏輯上可以將使用的服務(wù)器分為三類,每類服務(wù)器均有不同的功能:</p><p> Web服務(wù)器:該服務(wù)器進(jìn)行Web發(fā)布,提供用于普通用戶業(yè)務(wù)工作的操作界面(網(wǎng)頁(yè)),亦將用戶的操作參數(shù)通過(guò)處理后生成的數(shù)據(jù)庫(kù)查詢傳遞回?cái)?shù)據(jù)庫(kù)服務(wù)器,同時(shí)亦將結(jié)果在經(jīng)過(guò)解析以及重新編碼后生成的數(shù)據(jù)通過(guò)網(wǎng)頁(yè)的方式返回到用戶前端。同時(shí),該WEB服務(wù)器還
78、負(fù)責(zé)解析用戶的請(qǐng)求以及動(dòng)態(tài)的生成用戶所能看見(jiàn)的Web頁(yè)面。</p><p> 數(shù)據(jù)庫(kù)服務(wù)器:該服務(wù)器上安裝了MySQL數(shù)據(jù)庫(kù)系統(tǒng),數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)主要針對(duì)該服務(wù)器。在此存放著所有的原始數(shù)據(jù)及用于系統(tǒng)的其它結(jié)構(gòu)數(shù)據(jù),所有的用戶及管理者對(duì)信息的新增,修改,刪除最終都將反映在該服務(wù)器上。同時(shí),該服務(wù)器需要處理通過(guò)WEB服務(wù)器傳輸來(lái)的查詢請(qǐng)求,并將查詢結(jié)果返回給應(yīng)用服務(wù)器。</p><p>&l
79、t;b> 系統(tǒng)處理流程</b></p><p> 本系統(tǒng)采用B/S模式,Smartemplate構(gòu)架,用戶使用本系統(tǒng)時(shí),只需要安裝上網(wǎng)的瀏覽器即可,不需要安裝其它任何軟件。系統(tǒng)處理流程如下圖所示:</p><p> 圖5-2系統(tǒng)處理流程</p><p> 基于MVC的Smartemplate架構(gòu)</p><p>
80、本系統(tǒng)采用基于MVC的構(gòu)架實(shí)現(xiàn)。模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的PHP解析腳本構(gòu)成,控制器由SmartTemplate來(lái)實(shí)現(xiàn),視圖由一組含有SmartTemplate格式標(biāo)簽的HTML文件構(gòu)成。下圖簡(jiǎn)要描述了工作流程。</p><p> 圖5-3響應(yīng)用戶請(qǐng)求的工作流程</p><p> MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的把應(yīng)用程序的輸入、處理和輸出分開。MVC把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖和
81、控制器,它們之間的相互關(guān)系如下圖所示:</p><p> 圖5-4 MVC設(shè)計(jì)模式</p><p> SmartTemplate技術(shù)概述</p><p> 在這個(gè)系統(tǒng)制作過(guò)程中,大量采用了SmartTemplate技術(shù),現(xiàn)就自己對(duì)SmartTemplate技術(shù)的理解表述如下:</p><p> SmartTemplate是一個(gè)支持大型
82、WEB應(yīng)用程序的模板引擎,是由服務(wù)器端調(diào)用和執(zhí)行的PHP庫(kù)。SmartTemplate本身與協(xié)議無(wú)關(guān)。 </p><p> 要理解SmartTemplate,首先需要理解模板引擎的工作方式。</p><p> 普通模板引擎工作方式: 你的PHP腳本指定一個(gè)HTML模板,指定動(dòng)態(tài)內(nèi)容并顯示。模板分析器使用指派的內(nèi)容替換模板內(nèi)所有的占位符,然后顯示給用戶。</p><p
83、> SmartTemplate 的工作方式類似模板編譯,他把模板轉(zhuǎn)換為可執(zhí)行的PHP腳本,并且保存起來(lái)以備以后重用。當(dāng)一個(gè)新的模板在第一次被使用時(shí),模板內(nèi)所有的占位符被替換為簡(jiǎn)單的可輸出指定內(nèi)容的PHP代碼元素。舉個(gè)例子,模板片斷 <H3>{TITLE}</H3>,將被轉(zhuǎn)換為 <H3><?php echo $TITLE; ?></H3>. 如果你指定內(nèi)容給正確的變量,
84、將再也不需要進(jìn)行模板分析了. 程序要做的僅僅是自己包含并執(zhí)行編譯后的模板. 這種緩存方式能大大減少模板引擎的運(yùn)行時(shí)間。</p><p> SmartTemplate與html模版之間的關(guān)系</p><p> 為了增強(qiáng)系統(tǒng)的移植性,使系統(tǒng)能在Windows 、NT、UNIX及Linux環(huán)境下運(yùn)行而不進(jìn)行源代碼的修改,采用PHP技術(shù)。開發(fā)基于WEB的軟件系統(tǒng),采用PHP腳本 工具,用PHP
85、的動(dòng)態(tài)庫(kù)連接訪問(wèn)數(shù)據(jù)庫(kù),將一些對(duì)象的屬性和方法封裝在PHP類庫(kù)中,客戶端界面可用HTML與JavaScript配合完成,服務(wù)器端的應(yīng)用處理可用PHP腳本+SmartTemplate引擎來(lái)具體實(shí)現(xiàn)。</p><p> html模版主要用來(lái)定義最終的表現(xiàn)頁(yè)面,而PHP腳本主要用來(lái)完成大量的邏輯處理,SmartTemplate用于將處理后的數(shù)據(jù)動(dòng)態(tài)的封裝到html模版中,最終顯示的頁(yè)面有PHP解析后發(fā)送到客戶端。也就
86、是說(shuō),經(jīng)過(guò)封裝以及解析的html模版主要用來(lái)發(fā)送給前端的用戶,而PHP腳本主要來(lái)響應(yīng)用戶的請(qǐng)求,完成請(qǐng)求的邏輯處理,同時(shí),充當(dāng)著控制者的角色,用來(lái)負(fù)責(zé)響應(yīng)的事務(wù)處理。</p><p> SmartTemplate本身沒(méi)有任何的業(yè)務(wù)處理邏輯,它只是簡(jiǎn)單地檢索PHP腳本定義的對(duì)象,再將動(dòng)態(tài)的內(nèi)容插入到預(yù)定義的html模版中。</p><p> PHP腳本創(chuàng)建SmartTemplate需要的
87、變量和對(duì)象,再根據(jù)用戶的行為,決定處理哪個(gè)html模版并發(fā)送給用戶。</p><p> 在實(shí)際開發(fā)過(guò)程中,往往是先把html模版開發(fā)出來(lái),然后再將html模版中需要?jiǎng)討B(tài)生成的部分用SmartTemplate預(yù)定義的標(biāo)簽代替。這樣做的好處是充分利用了HTML的頁(yè)面表現(xiàn)能力,避免了PHP腳本在頁(yè)面表現(xiàn)方面的不足,大大縮短了開發(fā)周期,各盡所能。</p><p> 以下是節(jié)選程序代碼中的HTM
88、L模版轉(zhuǎn)換為最終的頁(yè)面對(duì)象:</p><p> 首先,用HTML編輯工具開發(fā)出HTML頁(yè)面</p><p> … …. …. ….</p><p> <form action="search.php" id="find_photo" method="post"></p>&l
89、t;p> <div align="left"></p><p> 搜索圖片: <input type="text" name="key" size="24" /></p><p> <input id="findbutton" ty
90、pe="submit" name="find_photo" value="搜索" /></p><p><b> </div></b></p><p><b> </form></b></p><p> <!--this
91、is the content of the slidshow--></p><p> <!-- do not modify the id of the father of dojoslidshow---></p><p> {flash_slideshow}</p><p><b> </div></b>&l
92、t;/p><p> <!--agl:cssobject id="indexphotolist" type="Three Columns" /--></p><p> <!-- BEGIN img_thb_block --></p><p> <div class="threecolbo
93、x_indexphotolist"></p><p> <a href="{org_link}" class="thickbox" rel="gallery-plants"></p><p> <img src="{link}" alt="" width
94、="70" height="70" border="0" /></p><p><b> </a></b></p><p><b> </div></b></p><p> <!-- END img_thb_block -
95、-></p><p><b> …. …. ….</b></p><p> 通過(guò)PHP解析將對(duì)應(yīng)內(nèi)容填充到HTML模版內(nèi)</p><p> … …. …. ….</p><p><b> <?php</b></p><p> if (!empty($_o
96、bj['img_thb_block'])){</p><p> if (!is_array($_obj['img_thb_block']))</p><p> $_obj['img_thb_block']=array(array('img_thb_block'=>$_obj['img_thb_block
97、9;]));</p><p> $_tmp_arr_keys=array_keys($_obj['img_thb_block']);</p><p> if ($_tmp_arr_keys[0]!='0')</p><p> $_obj['img_thb_block']=array(0=>$_obj[
98、9;img_thb_block']);</p><p> $_stack[$_stack_cnt++]=$_obj;</p><p> foreach ($_obj['img_thb_block'] as $rowcnt=>$img_thb_block) {</p><p> $img_thb_block['ROWCNT&
99、#39;]=$rowcnt;</p><p> $img_thb_block['ALTROW']=$rowcnt%2;</p><p> $img_thb_block['ROWBIT']=$rowcnt%2;</p><p> $_obj=&$img_thb_block;</p><p><
100、b> ?></b></p><p> <div class="threecolbox_indexphotolist"></p><p><b> <a href="</b></p><p><b> <?php</b></p>
101、<p> echo $_obj['org_link'];</p><p><b> ?></b></p><p> " class="thickbox" rel="gallery-plants"><img src="</p><p>
102、;<b> <?php</b></p><p> echo $_obj['link'];</p><p><b> ?></b></p><p> " alt="" width="70" height="70" bor
103、der="0" /></a></p><p><b> </div></b></p><p><b> …. …. ….</b></p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 圖5-5 圖片共享系統(tǒng)數(shù)據(jù)
104、庫(kù)設(shè)計(jì)結(jié)構(gòu)圖</p><p> 上圖是根據(jù)需求設(shè)計(jì)出十二個(gè)數(shù)據(jù)表,分別是:系統(tǒng)設(shè)定表(setting),管理員操作記錄表(adminlog),管理員信息表(admin_info),圖片緩存記錄表(hash_cache),縮略圖表(photothumbs),圖片表(photo),用戶組表(group_setting),用戶信息表(member_info),用戶登陸記錄表(loginlog),圖片分類表(sort_
105、setting),用戶上傳相冊(cè)表(job)以及標(biāo)簽表(tags_setting)。</p><p> 該表主要分為以下幾個(gè)部分:</p><p><b> 管理員相關(guān)表:</b></p><p> 圖5-6 管理員相關(guān)表</p><p><b> 系統(tǒng)設(shè)置表:</b></p>
106、<p> 圖5-7 系統(tǒng)設(shè)置表</p><p><b> 用戶組設(shè)置表</b></p><p> 圖5-8 用戶組設(shè)置表</p><p><b> 圖片信息表</b></p><p> 圖5-9 圖片信息表</p><p><b> 相冊(cè)以及標(biāo)
107、簽分類表</b></p><p> 圖5-10 相冊(cè)分類以及標(biāo)簽表</p><p> 前臺(tái)用戶主要數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)</p><p> 用戶上傳相冊(cè)表(job)用于存儲(chǔ)用戶上傳某批圖片的基礎(chǔ)信息</p><p> 表5-1 job 表</p><p> 用戶信息表(member_info)用于圖片上
108、傳用戶的詳細(xì)情況信息——與圖片表是一對(duì)多的關(guān)系:</p><p> 表5-2 member_info表</p><p> 管理后臺(tái)數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)</p><p> 系統(tǒng)設(shè)定表(setting)用于存儲(chǔ)系統(tǒng)基本設(shè)定信息</p><p> 表5-3 setting 表</p><p> 管理員操作記錄表(adm
109、inlog),用于存儲(chǔ)管理員對(duì)后臺(tái)的操作記錄</p><p> 表5-4 adminlog 表</p><p> 管理員信息表(admin_info),用于存儲(chǔ)管理員的基本信息(為了降低系統(tǒng)復(fù)雜度,這里將管理員的權(quán)限直接和管理員信息寫入同一表中,不獨(dú)立分為兩個(gè)表)</p><p> 表5-5 admin_info 表</p><p>&
110、lt;b> 特殊問(wèn)題解決辦法</b></p><p> 本系統(tǒng)在設(shè)計(jì)和開發(fā)過(guò)程中,也遇到了不少的問(wèn)題,就其中較特殊問(wèn)題分析及解決方案描述如下:</p><p> 商業(yè)源代碼,全套計(jì)算機(jī)畢業(yè)設(shè)計(jì)免費(fèi)下載 http://www.ibaidusoft.com</p><p> 更多全套設(shè)計(jì)聯(lián)系QQ:1042897696</p>&l
111、t;p> 最新設(shè)計(jì)大全 http://www.bylw168.com/sf/20100915/3539.html</p><p><b> 亂碼問(wèn)題</b></p><p> 在做設(shè)計(jì)的時(shí)候,遇到了亂碼問(wèn)題。在頁(yè)面間傳遞時(shí)漢字會(huì)亂碼,如果直接從數(shù)據(jù)庫(kù)添加數(shù)據(jù)顯示沒(méi)有亂碼,但是從后臺(tái)管理添加數(shù)據(jù)就會(huì)在添加成功后的顯示頁(yè)面出現(xiàn)在亂碼。對(duì)于這個(gè)問(wèn)題,原因是開發(fā)平
112、臺(tái)在WINDOWS下,WINDOWS默認(rèn)的編碼格式是GB2312,但是運(yùn)行環(huán)境卻是UTF-8環(huán)境,要避免亂碼,必須統(tǒng)一整個(gè)開發(fā)環(huán)境的字符編碼:</p><p> 首先,統(tǒng)一在數(shù)據(jù)庫(kù)中的編碼:</p><p> 在創(chuàng)建數(shù)據(jù)庫(kù)以及查詢數(shù)據(jù)庫(kù)時(shí),將編碼首先置為UTF-8</p><p> SET CHARACTER_SET_CLIENT = utf8,</p&
113、gt;<p> CHARACTER_SET_CONNECTION = utf8,</p><p> CHARACTER_SET_DATABASE = utf8,</p><p> CHARACTER_SET_RESULTS = utf8,</p><p> CHARACTER_SET_SERVER = utf8,</p><
114、p> COLLATION_CONNECTION = utf8_general_ci,</p><p> COLLATION_DATABASE = utf8_general_ci,</p><p> COLLATION_SERVER = utf8_general_ci,</p><p> AUTOCOMMIT=1";</p>&l
115、t;p> 在HTML模版的HEADER部分注明編碼標(biāo)準(zhǔn):</p><p> <meta http-equiv="content-type" content="text/html;charset=utf-8" /></p><p> 在PHP輸出前在HEADER內(nèi)容中申明所用的字符流編碼:</p><p>
116、; header('Content-Type: text/html; charset=utf-8');</p><p><b> 動(dòng)態(tài)顯示上傳進(jìn)度</b></p><p> 通過(guò)表單上傳有一個(gè)缺陷,就是不能動(dòng)態(tài)的顯示當(dāng)前文件上傳了多少。這樣在用戶上傳比較大的圖片時(shí)很不方便用戶判斷上傳所耗時(shí)間以及瀏覽器是否超時(shí)。解決方法:經(jīng)過(guò)查找,發(fā)現(xiàn)一個(gè)通過(guò)JA
117、VASCRIPT以及PHP的SOCKET庫(kù)動(dòng)態(tài)生成上傳進(jìn)度的PHP庫(kù):UGiA PHP UPLOADER。該庫(kù)的使用方法很簡(jiǎn)單,下面具體說(shuō)明其調(diào)用方法:</p><p><b> 調(diào)用方法:</b></p><p> 1.對(duì)于upu/misc/upu.js, 修改var basePath = "/upload/upu/"; 為upu相對(duì)于網(wǎng)站
118、根目錄的路徑</p><p> 2.然后在包含上傳表單的頁(yè)面中加入</p><p> <script type="text/javascript" src="upu/misc/upu.js"></script>,這里的</p><p> upu/misc/upu.js為upu.js的路徑,然后在&
119、lt;form>標(biāo)簽中加入</p><p> onsubmit="return upuInit(this)"</p><p> 3.在你文件上傳后處理的頁(yè)面中使用$_POST來(lái)獲取表單數(shù)據(jù)</p><p> 4. upu/temp為上傳臨時(shí)文件存放目錄, upu/files為文件存放目錄,這兩個(gè)目錄可以在upu.class.php中指
120、定。</p><p> 5. <form>中要有enctype="multipart/form-data"這個(gè)屬性,action為文件上傳成功后的處理頁(yè)面,也就是說(shuō)你的<form>完全按照正常的思路來(lái)寫就可以了,唯一不同的是需要加入onsubmit="return upuInit(this)"</p><p> 6. 上傳
121、成功后,可以使用$_POST來(lái)獲取表單數(shù)據(jù),如果是普通表單,直接</p><p> $_POST['表單名稱']即可獲得其值,如果是一個(gè)文件,則返回這樣一個(gè)數(shù)組</p><p> $_POST['表單名字'] = Array (</p><p> [filename] => </p><p> [
122、clientpath] => </p><p> [savepath] => </p><p> [filetype] => </p><p> [filesize] => </p><p> [extension] => </p><p><b> )</b&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于php實(shí)現(xiàn)的web圖片共享系統(tǒng)
- 基于PHP實(shí)現(xiàn)的WEB圖片共享系統(tǒng).doc
- 基于php實(shí)現(xiàn)的web圖片共享系統(tǒng)(源代碼+論文)
- 畢業(yè)論文范文——基于php實(shí)現(xiàn)的web圖片共享系統(tǒng)
- 畢業(yè)論文范文——基于php實(shí)現(xiàn)的web圖片共享系統(tǒng)
- 基于php的圖片共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- php基于web的討論系統(tǒng)
- 基于web的信息共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)---php基于web的討論系統(tǒng)
- 基于Web的氣象信息共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于PHP的Web開發(fā)框架的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于Web Service的RFID數(shù)據(jù)共享研究與系統(tǒng)實(shí)現(xiàn).pdf
- 基于Web服務(wù)的Internet文件共享系統(tǒng)的研究與實(shí)現(xiàn).pdf
- 基于web的資料共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)位論文
- php畢業(yè)設(shè)計(jì)--基于php的個(gè)人博客系統(tǒng)的實(shí)現(xiàn)
- 70770.基于web的學(xué)校圖片管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- php基于web的體育競(jìng)賽資訊交流系統(tǒng)
- 基于WEB技術(shù)的電網(wǎng)信息共享系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于Web Services的文件管理和共享系統(tǒng)的研究與實(shí)現(xiàn).pdf
- php基于web的subversion用戶管理系統(tǒng)(源代碼+論文)
評(píng)論
0/150
提交評(píng)論