【正文】
alse)。}// fake error message// if jupload gets != 200 status code, it prints out the error messageif (!$can_save) {$sz_message=39。:case 39。經(jīng)過(guò)具體比較,最終選擇 jupload 的 Applet 庫(kù)用作對(duì)圖片批量上傳的中間處理。解決方法:經(jīng)過(guò)查找,發(fā)現(xiàn)一個(gè)通過(guò) JAVASCRIPT 以及 PHP 的 SOCKET 庫(kù)動(dòng)態(tài)生成上傳進(jìn)度的 PHP 庫(kù):UGiA PHP UPLOADER。對(duì)于這個(gè)問(wèn)題,原因是開(kāi)發(fā)平臺(tái)在 WINDOWS 下,WINDOWS 默認(rèn)的編碼格式是 GB2312,但是運(yùn)行環(huán)境卻是 UTF8 環(huán)境,要避免亂碼,必須統(tǒng)一整個(gè)開(kāi)發(fā)環(huán)境的字符編碼:1.首先,統(tǒng)一在數(shù)據(jù)庫(kù)中的編碼:在創(chuàng)建數(shù)據(jù)庫(kù)以及查詢(xún)數(shù)據(jù)庫(kù)時(shí),將編碼首先置為 UTF8SET CHARACTER_SET_CLIENT = utf8,CHARACTER_SET_CONNECTION = utf8,CHARACTER_SET_DATABASE = utf8,CHARACTER_SET_RESULTS = utf8,CHARACTER_SET_SERVER = utf8,COLLATION_CONNECTION = utf8_general_ci,COLLATION_DATABASE = utf8_general_ci,COLLATION_SERVER = utf8_general_ci,AUTOCOMMIT=1。_link39。ALTROW39。])。img_thb_block39。]))$_obj[39。SmartTemplate 本身沒(méi)有任何的業(yè)務(wù)處理邏輯,它只是簡(jiǎn)單地檢索 PHP 腳本定義的對(duì)象,再將動(dòng)態(tài)的內(nèi)容插入到預(yù)定義的 html 模版中。SmartTemplate 的工作方式類(lèi)似模板編譯,他把模板轉(zhuǎn)換為可執(zhí)行的 PHP腳本,并且保存起來(lái)以備以后重用。模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的 PHP 解析腳本構(gòu)成,控制器由 SmartTemplate 來(lái)實(shí)現(xiàn),視圖由一組含有 SmartTemplate 格式標(biāo)簽的 HTML 文件構(gòu)成。39。user39。Servers39。] = 39。][$i][39。$cfg[39。extension_dir = D:\PHP\PHP\ext以上選項(xiàng)用于設(shè)定 PHP 的擴(kuò)展所在文件夾。 方案選擇綜上所述,本系統(tǒng)開(kāi)發(fā)選擇方案如下:本圖片共享系統(tǒng)采用 PHP、JavaScript 作為主要程序開(kāi)發(fā)語(yǔ)言,采用smarttemplate + 獨(dú)立后臺(tái)管理模版的構(gòu)架, mysql 數(shù)據(jù)庫(kù)。三者都提供在 HTML 代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。 B/S 結(jié)構(gòu),即 Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著 Inter 技術(shù)的興起,對(duì) C/S 結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。同時(shí),可以通過(guò)搜索功能來(lái)定位特定用戶(hù)名的用戶(hù),便于更快的找到需要操作的用戶(hù)。并且可以設(shè)置對(duì)某個(gè)功能專(zhuān)門(mén)進(jìn)行操作的管理人員,簡(jiǎn)化了管理的復(fù)雜程度。 管理后臺(tái)子模塊劃分圖 34 管理后臺(tái)子模塊結(jié)構(gòu)圖? 管理后臺(tái)子模塊 — 系統(tǒng)管理系統(tǒng)管理作為后臺(tái)管理的一個(gè)重要部分,主要是用于設(shè)置當(dāng)前系統(tǒng)的環(huán)境變量,以及一些說(shuō)明性的信息。當(dāng)一切設(shè)置完畢后,點(diǎn)擊“提交上傳” ,用戶(hù)圖片開(kāi)始上傳到系統(tǒng)中。當(dāng)兩個(gè)散列一致時(shí),后臺(tái)系統(tǒng)將修改用戶(hù)當(dāng)前的密碼為用戶(hù)修改后的密碼。 用戶(hù)界面子模塊劃分圖 33 用戶(hù)界面子模塊結(jié)構(gòu)圖? 用戶(hù)界面子模塊 — 密碼修改密碼修改,作為用戶(hù)界面子模塊的一部分,主要完成用戶(hù)密碼修改的工作。6. 已經(jīng)上傳的圖片,可以通過(guò)用戶(hù)查看圖片的連接直接提供給第三方用戶(hù)進(jìn)行查看。以及對(duì)用戶(hù)圖片的查看,刪除;對(duì)用戶(hù)的分類(lèi)的查看,刪除;對(duì)用戶(hù)標(biāo)簽的查看,刪除。除此之外,最好還要支持客戶(hù)端方式。并且能夠從用戶(hù)角度來(lái)設(shè)計(jì)一個(gè)應(yīng)用。該系統(tǒng)初步分為兩個(gè)部分,一個(gè)是作為 WEB 界面的 WEB 端,還有一個(gè)部分是用來(lái)通過(guò) C/S 模式遠(yuǎn)程上傳本地圖片的客戶(hù)端工具。導(dǎo)致資源無(wú)法有效利用。于是,網(wǎng)站從以前的集中發(fā)布式,漸漸的轉(zhuǎn)變成了用戶(hù)提供資源,網(wǎng)站整理發(fā)布的模式。并且系統(tǒng)中對(duì)于圖片上傳需要有比較直觀的進(jìn)度顯示,圖片的呈現(xiàn)使用比較友善的顯示效果?;?PHP 實(shí)現(xiàn)的 WEB 圖片共享系統(tǒng)摘 要本系統(tǒng)主要從現(xiàn)代社會(huì)電腦化觀念出發(fā),通過(guò)對(duì)現(xiàn)有資料的分析、研究和整理,確定了在基于現(xiàn)存的 模式下開(kāi)發(fā)圖片共享系統(tǒng)的可行性、緊迫性和必要性。關(guān)鍵詞:模型視圖控制器;圖片共享;AjaxA Picture Share System Based on PHPAbstractThis system mainly embarks from the modern society puterization. Based on existence information analysis, the research and the reanization, we considered the pressing and the necessity of implementing order form developing picture share system base on the present stage, the domestic picture share system based on is just underway. There is expansive to take part in this field, at the same time, mature picture share system aboard is already exist for a long time. In period, the style of information publishing turned from server publishing to user publishing .In another word, it is changed from server publishing information to user providing information, and in this case, servers only need to coordinating, sorting and republishing. Furthermore, in this model, a website is much friendlier to user.This thesis mainly describes how to developing fully functional pictures upload and picture management 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 uploading is intuitionisticly showing, and the picture is need to be shown user friendly.Key words: MVC。其中最為常見(jiàn)的就是 BLOG,WIKI 這些形勢(shì)。國(guó)內(nèi)目前在這方面興起的網(wǎng)站還不多,國(guó)外也有比較出名的,例如:Flikre:,巴巴變: 等。2 系統(tǒng)概述在對(duì)于由經(jīng)用戶(hù)提交的的方式來(lái)實(shí)現(xiàn)圖片共享,首要就是提高用戶(hù)上傳效率,以及用戶(hù)上傳體驗(yàn)和用戶(hù)的瀏覽是否方便。大大減輕了設(shè)計(jì)的壓力以及風(fēng)險(xiǎn)。并且需要實(shí)現(xiàn)在用戶(hù)不安裝客戶(hù)端的情況下,在 WEB 上實(shí)現(xiàn)批量上傳圖片。 總體結(jié)構(gòu)圖片共享系統(tǒng)主要功能模塊結(jié)構(gòu)示意圖如下:圖 片 共 享 系 統(tǒng)用 戶(hù) 界 面 后 臺(tái) 管 理用 戶(hù) 前 臺(tái) 圖 片 處理用戶(hù)登錄驗(yàn)證用戶(hù)圖片上傳用戶(hù)圖片預(yù)覽用 戶(hù) 后 臺(tái) 管 理用 戶(hù) 管 理 管 理 員 管 理用戶(hù)信息管理用戶(hù)圖片標(biāo)簽管理用戶(hù)圖片任務(wù)管理用戶(hù)添加用戶(hù)信息修改用戶(hù)圖片管理用戶(hù)搜索后臺(tái)用戶(hù)添加后臺(tái)用戶(hù)修改后臺(tái)用戶(hù)刪除后臺(tái)用戶(hù)權(quán)限分派圖 31 圖片共享系統(tǒng)功能模塊圖圖片共享系統(tǒng)包括兩大部分:用戶(hù)界面和后臺(tái)管理,其中用戶(hù)界面為用戶(hù)可視并且可使用的功能,后臺(tái)管理為管理員所能使用的功能?;蛘咧苯油ㄟ^(guò)系統(tǒng)生成的連接發(fā)送給第三方用戶(hù)進(jìn)行查看。執(zhí)行流程是:用戶(hù)在登陸到主界面后,點(diǎn)擊導(dǎo)航欄上的密碼修改,轉(zhuǎn)向到修改用戶(hù)密碼的界面。如果用戶(hù)沒(méi)有輸入驗(yàn)證碼或者驗(yàn)證碼出錯(cuò),當(dāng)前用戶(hù)密碼散列無(wú)法和數(shù)據(jù)庫(kù)中的密碼散列對(duì)應(yīng),系統(tǒng)將給出對(duì)應(yīng)的出錯(cuò)提示。2)直接批量上傳多個(gè)圖片:用戶(hù)點(diǎn)擊“批量上傳”標(biāo)簽,系統(tǒng)提示該功能需要 JAVA 運(yùn)行時(shí)支持,確認(rèn)后,進(jìn)入批量圖片信息設(shè)定頁(yè)面,該頁(yè)面用于設(shè)置接下來(lái)所上傳的圖片的名稱(chēng),描述,分類(lèi),標(biāo)簽等信息。主要是由后臺(tái)管理員對(duì)系統(tǒng)進(jìn)行維護(hù)以及系統(tǒng)初始化的時(shí)候確定這些設(shè)置。這個(gè)功能為系統(tǒng)提供了比較方便的擴(kuò)展系統(tǒng)管理團(tuán)隊(duì)的方法。? 管理后臺(tái)子模塊 — 圖片管理圖片管理用于管理當(dāng)前系統(tǒng)中已經(jīng)正常注冊(cè)并且使用本系統(tǒng)的圖片共享功能的用戶(hù)所上傳的圖片。在這種結(jié)構(gòu)下,用戶(hù)界面完全通過(guò) WWW 瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。但 JSP 代碼被編譯成 Servlet 并由 Java 虛擬機(jī)解釋執(zhí)行,這種編譯操作僅在對(duì) JSP 頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。采用 B/S 結(jié)構(gòu)。extension=該擴(kuò)展用于支持長(zhǎng)字符集extension=該擴(kuò)展用于支持 PHP 讀取圖片的 EXIF 信息。Servers39。port39。tcp39。][$i][39。] = 39。//MySQL 連接密碼5 實(shí)現(xiàn)技術(shù)與數(shù)據(jù)結(jié)構(gòu) 系統(tǒng)架構(gòu)設(shè)計(jì) 網(wǎng)絡(luò)架構(gòu)整個(gè)網(wǎng)絡(luò)架構(gòu)體系如下圖:圖 51 圖片共享系統(tǒng)網(wǎng)絡(luò)構(gòu)架圖 系統(tǒng)邏輯服務(wù)器在邏輯上可以將使用的服務(wù)器分為三類(lèi),每類(lèi)服務(wù)器均有不同的功能:Web 服務(wù)器:該服務(wù)器進(jìn)行 Web 發(fā)布,提供用于普通用戶(hù)業(yè)務(wù)工作的操作界面(網(wǎng)頁(yè)) ,亦將用戶(hù)的操作參數(shù)通過(guò)處理后生成的數(shù)據(jù)庫(kù)查詢(xún)傳遞回?cái)?shù)據(jù)庫(kù)服務(wù)器,同時(shí)亦將結(jié)果在經(jīng)過(guò)解析以及重新編碼后生成的數(shù)據(jù)通過(guò)網(wǎng)頁(yè)的方式返回到用戶(hù)前端。下圖簡(jiǎn)要描述了工作流程。當(dāng)一個(gè)新的模板在第一次被使用時(shí),模板內(nèi)所有的占位符被替換為簡(jiǎn)單的可輸出指定內(nèi)容的 PHP 代碼元素。PHP 腳本創(chuàng)建 SmartTemplate 需要的變量和對(duì)象,再根據(jù)用戶(hù)的行為,決定處理哪個(gè) html 模版并發(fā)送給用戶(hù)。img_thb_block39。])。$_stack[$_stack_t++]=$_obj。]=$rowt%2。]。2.在 HTML 模版的 HEADER 部分注明編碼標(biāo)準(zhǔn):meta equiv=contenttype content=text/html。該庫(kù)的使用方法很簡(jiǎn)單,下面具體說(shuō)明其調(diào)用方法:調(diào)用方法: upu/misc/, 修改 var basePath = /upload/upu/。同時(shí),為了實(shí)現(xiàn)對(duì)批量上傳的文件進(jìn)行處理,還需要手工編寫(xiě)對(duì)上傳后的文件進(jìn)行處理的回調(diào)腳本,具體實(shí)現(xiàn)原理如下:首先,jupload 在上傳一個(gè)文件后便會(huì)自動(dòng)調(diào)用一個(gè)回調(diào)腳本來(lái)處理上傳過(guò)后的文件。cgifcgi39。406 It is not acceptable to save this file39。exit(0)。] = $_GET[39。$_SESSION[39。jid39。job_title39。job_tags39。]。] = $objekt[39。size39。])。$ext = explode(39。][39。name39。])) {move_uploaded_file($objekt[39