国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web的文件上傳管理系統(tǒng)

2014-10-10 17:46:39張雁陳若昱
電腦知識(shí)與技術(shù) 2014年24期

張雁 陳若昱

摘要:該文開(kāi)發(fā)了一套基于Web方式的文件上傳系統(tǒng),此系統(tǒng)的基本設(shè)計(jì)理念是簡(jiǎn)單高效,主要為了解決大量文件向一個(gè)地方集中的問(wèn)題。為了保持系統(tǒng)簡(jiǎn)潔,本系統(tǒng)只有一個(gè)簡(jiǎn)單的IP地址和用戶名的對(duì)應(yīng)文件作為配置文件,使用NTFS的數(shù)據(jù)流屬性來(lái)記錄每個(gè)上傳文件的IP及原始文件名信息。本系統(tǒng)分為三個(gè)部分:上傳端、管理員端以及文件服務(wù)器。經(jīng)實(shí)測(cè),該系統(tǒng)的系統(tǒng)穩(wěn)定性較好,響應(yīng)速度快,可以很好地實(shí)現(xiàn)預(yù)期功能。

關(guān)鍵詞:Web;Apache;PHP; NTFS數(shù)據(jù)流

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)24-5689-03

在電力系統(tǒng)的日常管理中,不可避免地要傳遞各種文件。傳遞文件一般有一個(gè)類似文件匯聚點(diǎn),其他人的文件都向這一點(diǎn)匯聚?,F(xiàn)在一般傳遞文件是通過(guò)Email方式,對(duì)于少量的文件這種方式是較為實(shí)用的。對(duì)于大量(>100)的文件傳輸來(lái)說(shuō),采用Email方式的接收端處理過(guò)程十分麻煩,下載,管理以及合并刪除操作都十分費(fèi)時(shí)費(fèi)力。因此,開(kāi)發(fā)一個(gè)簡(jiǎn)單實(shí)用的文件上傳管理系統(tǒng)是十分必要的。

1 系統(tǒng)結(jié)構(gòu)

系統(tǒng)的整體結(jié)構(gòu)如圖1所示,整體包含三個(gè)部分,有多個(gè)文件的上傳者,一個(gè)文件匯總者,還有一個(gè)服務(wù)器用于存儲(chǔ)文件。這三個(gè)部分的區(qū)別是邏輯上的,文件匯總者和服務(wù)器也可以合二為一。本文所開(kāi)發(fā)的系統(tǒng)服務(wù)器所需要的資源很少,不會(huì)對(duì)文件匯總者的正常使用帶來(lái)干擾。

2 具體實(shí)現(xiàn)方式的選擇

正如前文所說(shuō),如果不采用Email方式,那么根據(jù)目前技術(shù)發(fā)展的現(xiàn)狀,可采用的方式包括:1)Ftp方式;2)SVN方式;3)Web方式。

下面進(jìn)行逐一分析:

2.1 Ftp方式

這種方式采用Ftp客戶端方式上傳下載,遠(yuǎn)端需要一個(gè)Ftp 服務(wù)器。上傳后的文件可采用操作系統(tǒng)自帶的文件管理功能進(jìn)行刪除和歸類以及歸檔。Windows XP系統(tǒng)上自帶一個(gè)Ftp客戶端,可以進(jìn)行上傳和下載。不幸的是,從Windows 7以后,系統(tǒng)不再自帶Ftp客戶端,無(wú)法上傳文件了(但還可以通過(guò)瀏覽器ftp下載)。如果要使用這種方式,需要自行安裝一個(gè)Ftp客戶端,如filezilla, cuteftp等等來(lái)進(jìn)行上載。此外,為了防止意外刪除遠(yuǎn)端文件,還需要在ftp客戶端分配用戶名和密碼,并在ftp服務(wù)器端進(jìn)行一些權(quán)限設(shè)置。

2.2 SVN方式

SVN是subvesion network的簡(jiǎn)稱,本質(zhì)上是一種版本管理工具。利用它也可以完成文件的上傳,下載,以及庫(kù)中文件的管理。和Ftp類似,SVN也需要安裝客戶端,常用的客戶端有tortoiseSVN等。同樣地,為了防止意外刪除遠(yuǎn)端文件,也需要在客戶端分配用戶名和密碼,并在服務(wù)器端進(jìn)行一些權(quán)限設(shè)置。

2.3 Web方式

這種方式客戶端不需要安裝任何軟件,直接使用瀏覽器即可完成文件的上傳下載。

考慮到客戶端使用的方便性和簡(jiǎn)單性,本文所開(kāi)發(fā)的文件上傳管理系統(tǒng)使用了Web方式,它在客戶端不需要安裝任何軟件。使用瀏覽器完成所有的文件操作。為了更簡(jiǎn)化上傳的方便性,也不需要給客戶端分配用戶名和密碼,直接在服務(wù)器端利用不同的IP進(jìn)行限制即可。

服務(wù)器端的軟件使用了Apache,它是目前占有率第一的Web服務(wù)器,可以方便地應(yīng)用在Windows、Linux、Unix、Mac等各種計(jì)算機(jī)平臺(tái)上。為了開(kāi)發(fā)這個(gè)web文件上傳系統(tǒng)的功能,我們還選擇了PHP語(yǔ)言。PHP是一種面向?qū)ο蟮?、完全跨平臺(tái)的語(yǔ)言,解釋型的語(yǔ)言。它開(kāi)發(fā)周期短,學(xué)習(xí)簡(jiǎn)單,功能強(qiáng)大,尤其是在字符串和數(shù)據(jù)庫(kù)處理方面。選擇它也符合我們開(kāi)發(fā)這套系統(tǒng)簡(jiǎn)潔高效的意圖。

3 系統(tǒng)介紹

整個(gè)系統(tǒng)把人分為兩種角色:上傳者和管理者,對(duì)應(yīng)可分為兩大模塊,上傳模塊和文件管理模塊,各自的功能劃分可參考表1。

從表1中可以看出,上傳模塊的功能比較簡(jiǎn)單,主要就是上傳文件和查看已經(jīng)上傳的文件,界面可參考圖2。上傳文件時(shí)只需要選擇文件并上傳即可,不需要用戶名和密碼登錄系統(tǒng),減少了中間環(huán)節(jié),提高了效率。

圖3是文件管理模塊的主要界面,這個(gè)界面主要列出了已經(jīng)上傳的文件的信息,包括文件名,文件大小,上傳時(shí)間,上傳者等等。還可以根據(jù)上傳時(shí)間,文件名以及上傳者來(lái)對(duì)文件排序。還有就是一些文件操作,如下載,合并和刪除等等。前面的選擇框可以使操作者同時(shí)操作多個(gè)文件,提高了效率。

需要說(shuō)明的是,這些模塊都是在服務(wù)器端部署和運(yùn)行,本質(zhì)是都是一些PHP程序。無(wú)論是上傳者還是管理者,他們只需要一個(gè)瀏覽器即可,不需要額外安裝其他的任何軟件。

下面主要說(shuō)一下實(shí)現(xiàn)中幾個(gè)問(wèn)題的處理過(guò)程,即上傳者,管理員,合并操作以及不使用數(shù)據(jù)庫(kù)的文件管理:

3.1 上傳者

從之前的介紹中可以得知,客戶端在上傳文件的時(shí)候并沒(méi)有輸入用戶名和密碼,那么服務(wù)器是怎么判斷上傳者的呢?原因是在服務(wù)器端存在一個(gè)配置文件,這個(gè)文件存放著IP地址和用戶名之間的關(guān)系,文件的內(nèi)容如圖4所示。

從圖4中可以看出,用戶名和IP地址之間并不是一一對(duì)應(yīng)的,一個(gè)用戶名可以對(duì)應(yīng)多個(gè)IP地址。這是因?yàn)榭紤]到電力系統(tǒng)的實(shí)際情況,雖然電力系統(tǒng)內(nèi)部的IP地址是固定的,但客戶端可能會(huì)更換IP上傳文件,所以要允許一個(gè)用戶對(duì)應(yīng)多個(gè)IP地址。

如果IP地址沒(méi)有對(duì)應(yīng)用戶名,那么說(shuō)明要么這不是一個(gè)合法的文件,要么就是圖4中內(nèi)容還沒(méi)有更新。此時(shí)用戶名處會(huì)直接顯示IP地址,服務(wù)器端再更新圖4的配置文件以后,此時(shí)會(huì)顯示新的用戶名。

從后面的描述中可知,本系統(tǒng)的IP地址是存放在文件的附加流中,這樣會(huì)讓各個(gè)功能模塊之間盡可能“正交”,減少互相傳遞和依靠的信息,也就減少了相互的干擾。

在具體實(shí)現(xiàn)時(shí),PHP有一種關(guān)聯(lián)數(shù)組,本文使用了它來(lái)描述用戶名與IP地址的對(duì)應(yīng)關(guān)系。由于關(guān)聯(lián)數(shù)組采用了Hash技術(shù),查詢會(huì)非常快。

3.2 管理員

從圖4中可以看出,第一行為管理員的IP。當(dāng)系統(tǒng)發(fā)現(xiàn)是管理員的IP登錄時(shí),自動(dòng)調(diào)用圖2所示的界面,否則調(diào)用圖3所示的界面。這種利用IP而不是用戶名/密碼機(jī)制的方法大大簡(jiǎn)化了使用。因?yàn)殡娏ο到y(tǒng)內(nèi)部均使用固定IP,這種配置方式是可行的。

3.3 合并操作

一般上傳的文件都為office的文件,包括doc, ppt, xls等等。傳統(tǒng)的方法是將其逐個(gè)下載然后處理。實(shí)際上,因?yàn)镻HP文件可以調(diào)用OLE,可以直接對(duì)office格式的文件直接處理。在實(shí)際工作中,一般都是合并多個(gè)文件,即將多個(gè)office的同類文件合并成一個(gè)文件。這樣可以減少中間步驟,提高效率。

3.4 不使用額外配置文件的文件管理

本文所實(shí)現(xiàn)的系統(tǒng)只有一個(gè)配置文件,就是圖3所示的IP地址和人名的對(duì)應(yīng)文件。在系統(tǒng)實(shí)際使用時(shí),需要在服務(wù)器端記錄每個(gè)文件是由哪個(gè)IP上傳的,以及原始的文件名。傳統(tǒng)的方式要么使用數(shù)據(jù)庫(kù),要么是用一個(gè)數(shù)據(jù)文件記錄這個(gè)信息,注意直接使用IP+原始文件名不可取,因?yàn)樵嘉募锌赡苤孛?。不管使用哪一種方式,都有一個(gè)維護(hù)問(wèn)題,否則就會(huì)產(chǎn)生對(duì)應(yīng)關(guān)系不正確或者文件張冠李戴的情形。

本文解決這個(gè)問(wèn)題的方式是采用NTFS的數(shù)據(jù)流,NTFS格式的分區(qū)支持?jǐn)?shù)據(jù)流的方式。任意一個(gè)文件都可以附帶數(shù)據(jù)流,使用“文件名:流名”的方式來(lái)進(jìn)行訪問(wèn)。刪除文件時(shí)也會(huì)刪除相應(yīng)的數(shù)據(jù)流,如果將IP地址信息存儲(chǔ)在數(shù)據(jù)流中,這樣就從根本上保證了一致性。在本文中,使用“文件名:ip.txt”來(lái)存儲(chǔ)IP地址信息;使用“文件名:name.txt”來(lái)存儲(chǔ)原始文件名。為了避免重名,系統(tǒng)使用自己的方式來(lái)給文件命名。

4 性能考慮和實(shí)際測(cè)試

本文所開(kāi)發(fā)的系統(tǒng)是一個(gè)實(shí)際使用的系統(tǒng),簡(jiǎn)單、高效、穩(wěn)定是追求的目標(biāo)。首先,本系統(tǒng)沒(méi)有采用用戶名/密碼機(jī)制,簡(jiǎn)化了系統(tǒng)的流程,提高了編程效率;其次,本系統(tǒng)也沒(méi)有采用數(shù)據(jù)庫(kù)機(jī)制,盡管php和mysql的配合是完美無(wú)縫的,只使用了一個(gè)簡(jiǎn)單的配置文件。這個(gè)文件在服務(wù)器一啟動(dòng)就讀入內(nèi)存中,使用關(guān)聯(lián)數(shù)組進(jìn)行查詢,大大提高了效率;最后,本系統(tǒng)在管理員端的主界面其實(shí)是從文件系統(tǒng)中即時(shí)生成的。這樣就保持了良好的一致性并可以利用系統(tǒng)的文件管理功能。

目前,本系統(tǒng)已經(jīng)完成,實(shí)際測(cè)試結(jié)果顯示,系統(tǒng)運(yùn)行正常,服務(wù)器端壓力非常小。客戶端反應(yīng)速度很快,完全可以滿足實(shí)際的使用。

5 總結(jié)

本文開(kāi)發(fā)了一套基于Web的文件上傳系統(tǒng),此系統(tǒng)的設(shè)計(jì)理念是簡(jiǎn)潔高效。整個(gè)系統(tǒng)分為客戶端部分和管理員部分??蛻舳酥饕瓿晌募纳蟼?,管理員部分主要完成文件的下載,合并以及管理工作。經(jīng)過(guò)測(cè)試,該系統(tǒng)的系統(tǒng)穩(wěn)定性較好,響應(yīng)速度快,可以很好地實(shí)現(xiàn)預(yù)期功能。

參考文獻(xiàn):

[1] 牛錦中,牛錦宇,李錦濤,等.WWW服務(wù)器技術(shù)——Apache使用指南與實(shí)現(xiàn)原理[M].北京:中國(guó)水利水電出版社,2002.

[2] Larry Ullman.PHP基礎(chǔ)教程[M].3版.北京:人民郵電出版社,2010.

[3] NTFS Streams.Everything you need to know[EB/OL].]http://www.diamondcs.com.au/index.php?page=archive&id=ntfs-streams.

资源县| 万安县| 丘北县| 炉霍县| 双柏县| 麻栗坡县| 邵武市| 大关县| 康保县| 通山县| 玛曲县| 吴江市| 昆山市| 抚州市| 武功县| 双江| 昌黎县| 怀仁县| 长宁区| 慈溪市| 黄浦区| 调兵山市| 阿巴嘎旗| 崇明县| 西城区| 大兴区| 波密县| 邵东县| 星子县| 武乡县| 红河县| 太仓市| 汶川县| 盐城市| 察雅县| 阳泉市| 德昌县| 报价| 高碑店市| 平乡县| 康乐县|