李曉波
(東北石油大學,163318)
網絡信息時代,技術飛速發展,文件管理也由傳統的人工歸檔逐漸向信息管理方向轉變,文件管理在信息技術的推動下,變得越來越智能,本系統就是在這個背景下,為適應無紙化辦公而產生的。本系統以SQL Server 2000為后臺數據庫,采用C#編程,連接數據庫則采用流行的ADO技術,并對前臺和后臺數據進行及時跟新,使系統前臺和后臺數據保持同步。
本系統主要由兩個模塊組成,主要實現兩個功能,文件管理、功能管理。下面對這兩個模塊進行具體分析。
1.1.1 文件管理功能模塊
這是文件管理系統的主體功能,由四個子系統組成:上傳、下載、瀏覽、查詢。上傳指將準備上傳的文件信息以代碼的形式存儲在數據庫中,這些信息代表了文件的屬性,具有惟一性;下載就是用戶為了方便查閱文件將其從存儲空間讀取出來,村儲在本地磁盤上;瀏覽,指以視圖的形式將文件及子文件層層展開,各級目錄依次呈現在瀏覽者面前,供瀏覽者閱讀出其中的信息;查詢,用戶可以根據需要,按照文件的各種屬性進行查閱相關資料。
1.1.2 用戶管理功能模塊
這是文件管理系統的核心功能,由五個子系統構成:注冊,指新用戶填寫相應的信息,系統將按照信息分配唯一的指令;登錄,只有用戶輸入的信息和數據庫匹配后才能實現登錄功能;查詢,根據文件屬性信息和用戶需要快速準確找到所需信息;審核用戶信息,指根據注冊信息對用戶分配相應權限,將多余的用戶信息刪除;維護用戶信息,指對注冊后存儲在數據庫中的信息及時更新維護,對需要注銷刪除的用戶信息按照程序進行注銷和維護;管理下載信息,指管理員對下載文件的用戶信息進行登記,并給予安全管理。
本系統融合三個邏輯層的模型,采用表示層、邏輯層、數據訪問層的模式,這樣整體結構比較清晰,便于系統的運行和維護。表示層即呈現給用戶的瀏覽頁面,以程序的形式給用戶提供瀏覽;業務邏輯層指系統引用程序實現的功能;數據訪問層指各種后綴為DB的類,為用戶提供數據服務,具體框架結構見圖1。

圖1 文件管理系統整體結構
文件管理系統設計按照圖2所示的功能結構圖實現層層設計。

圖2 文件管理系統功能模塊圖
文件管理系統要求在數據庫中應該存儲和管理哪些數據對象;數據操作要求是指對數據對象需要進行哪些操作,如查詢、增、刪、改、統計等操作。就本系統而言,涉及的數據字段內容比較多,所以本系統開發采用建立三個數據表來支持前臺的操作,在仔細分析有關文件管理系統信息需要的基礎上,建立主要功能模塊的關系表(表1)。

表1 文件管理系統主要關系表
前面提到文件管理系統的三個結構,前臺靠ASP.NET Web Forms實現,后臺開發以C#為載體,二者綜合,實現了業務邏輯層的功能,訪問功能的實現則靠名為DB.CS的類來實現。連接數據庫的代碼存放在Web.Config中,相關代碼如下:<appSettings>
<add key="connString"value="server=.;database=fileM anage;uid=sa;pwd=123"/>
</appSettings>實現連接數據庫。DB.CS的類滿足數據庫訪問的需要,利用DB.CS的類可以讀取數據表或者調用數據庫。系統調用ReadTable()可以實現查詢功能,而修改、增減、刪除數據庫則靠execSql()的調用來實現。
頁面上有“文件管理”選項,當用戶點擊時候,會自動跳到登錄界面,然后進行相應的操作。
系統設置了一定的權限,用戶想要進行更多的操作必須申請特定的用戶名,否則只有瀏覽權限。在注冊時,系統調用函數sqlStr(a,b,c),自動判斷用戶提交的信息是否正確,自動分配相應的用戶權限。
用戶注冊時,注冊人提供相應的信息,程序自動運行ASP.NET Web Form 控件中的RequiredFieldValidator和CustomValidator,綜合selectUserName(userName)方法調用數據庫判斷用戶信息是否在數據庫中存在,后臺程序自動識別密碼是否正確。信息存儲在數據庫中后,管理員利用自己的權限,確定注冊是否通過。注冊成功后顯示對應的操作。
這個界面與文件查詢界面類似。管理員可以按照用戶名、所屬部門、性別、用戶級別來查詢用戶信息,也可以多條件查詢。
文件管理系統給管理自動分配名稱“matina”給系統管理員,默認“123”為登錄密碼,管理員登錄后進行相應的操作,實現管理員查詢、審核、維護、上傳、下載功能。考慮到系統的安全性,管理員有權知道哪個文件被哪個用戶何時下載,還可以利用函數DeletedownloadTable(a)完成信息刪除功能。
系統根據用戶的權限進行了設置,一般的用上傳的文件只能是jpg、bmp、word、txt、pp等幾種格式,高級別的用戶對上傳文件的格式則不受限制.
在系統中上傳文件時,文件的具體屬性以代碼的形式存儲在數據表中,用戶名以Session對象來存儲,系統所在地的時間即為上傳文件的時間,用戶只需按照自己的需要操作,具體運行過程在后臺由程序自動運行。代碼如下:
string userName = Convert.ToString(Session["name"]);//獲得用戶名
string fileName = System.IO.Path.GetFileName(this.FileUpload.PostedFile.FileName);
//獲得文件名
string fileExtension = System.IO.Path.GetExtension(fileName);//得到文件的擴展名
string dateTime =Convert.ToString(DateTime.Now);
//獲取系統當前時間作為上傳時間
HttpPostedFile postedFile=this.FileUpload.PostedFile;
string fsize = Convert.ToString(postedFile.ContentLength)+"kb";//獲得文件大小
調用getID()方法獲取文件信息表中的文件最大ID號,將最大ID號加在文件名作為文件的上傳名。之后判斷用戶級別,若為普通用戶則判斷文件類型是否符合要求。滿足要求之后上傳,文件上傳到磁盤上是以文件的上傳名存儲的。之后調用insertTofileTable(fileName,fsize,userName,dateTime,attribute.,item,a,fileExtension,banben,filedescribe)將信息寫入文件信息表。
在文件上傳時,有個難點就是對文件版本的實現。本系統的設計思想是這樣的,把定義一個初值為“1”的變量banben,作為文件版本的初值。用戶上傳一個文件,調用selectfileName1(userName,fileName)方法判斷文件信息表中是否有該用戶上傳的同名文件,如是方法返回值的行數小于一,就把banben直接寫入文件信息表,否則,再調用selectfileName2(userName,fileName)方法,獲取該文件的最大版本號,將其加一賦值給變量banben做為此次上傳文件的版本號。然后把這些信息寫入到數據庫中。
本系統的建立,滿足了企業對文件的管理,包括文件的上傳下載,查詢、瀏覽;對用戶的管理以及對下載信息的管理。系統采用目前比較流行的B/S架構,通過將整個系統分為不同的邏輯模塊,大大降低了應用程序系統開發和維護成本,提高了系統模塊的復用性,同時系統模塊的可擴展性大大增強。因此本系統具有一定得市場前景。
[1]汪星明.管理信息系統---MBA全景教程之十[M].北京:北京大學出版社,2008.
[2]季久峰.ASP.NET辦公自動化系統開發實例導航[M].北京:人民郵電出版社,2011.
[3]李萬倫.ASP.NET程序設計[M].北京:清華大學出版社,2012.
[4]王珊,薩師煊.數據庫系統概論[M].北京:高等教育出版社,2006.