關於ASP.Net的匯入匯出的(1)

來源:互聯網
上載者:User

Com.urp.command.FileFrameWork(1)

前一陣子做了個JSF的項目,某個學院的一個管理系統。儘管項目用到了sping,用到了hibernate,不過感覺還都只是一些查詢,編輯,添加,刪除。在這家公司一年了,所做的項目都是這樣,也沒跳過槽,不知道外面的世界,不知道別人家是怎麼寫程式的,總決得自己公司寫出來的程式沒有技術含量,沒有架構,模組的概念,有的永遠是一成不變的三層。

畢業剛進公司的時候,看到三層模式,還感覺有點興奮,哦,原來程式可以這麼寫,原來這個就是傳說中的三層模式,頓時對設計人員頂禮膜拜。可現在,設計來設計去,寫來寫去都是一樣的,感覺是一個人就可以搞得定的,怎一個失落了得。想想外面的程式不該就那麼簡單吧,至少在部落格園上面還是有很多東西看不懂的。

不抱怨了,說說自己要寫的吧。項目本身沒有多大的新意,不過自己做的一塊匯入匯出感覺還是蠻有意思的。之前是用java寫的,而且由於是項目緊張的關係,寫的時候也沒有多去想,現在空了,發現還有好多可以改進的地方。

寫的這些東西,不是要來討論匯入匯出該怎麼做,上傳下載要怎麼寫,僅僅是做完項目後的一點個人經驗,望各位看官不要過於嚴肅。

主要功能包括是匯入和匯出。因為是BS結構,所以可能要設計的上傳下載。所以打算先從上傳下載做起。可能有些朋友要跳出來說,我的寫的上傳,在上傳大檔案是會出現問題,所以我要再說一次,這隻是我做項目裡的一點經驗和總結,至少在這個項目裡沒有對於大檔案的需求,對於2,3M的資料庫檔案似乎並沒有出現問題,所以我們暫時不考慮吧。況且如果類和類間關係設計的好的話,再增加這方面需求應該不是難事。

匯入匯出簡化一點看,其實就是下面的兩個過程:

現在完成的上傳部分的類圖:

UploadFileFrame繼承IfileFrame介面,IfileFrame有一個IFileAPI的屬性,和一個Execute的方法。我們希望UploadFileFrame是一個類似面板模式的類,使用者只需要調用一個Execute方法。設想以後的DownloadFileFrame,ImportFileFrame,ExportFileFrame都對外只提供這個方法,取成統一的名字,也是為了將來有程式中可能要採用命令模式,方便一些日誌或者許可權驗證的擴充。

IFileAPI是完成具體類型檔案讀取和寫入,比如是excel,mdb等。因為目前來看,在JAVA中對這些檔案操作,每個需要不同的包,相信C#應該也是這樣。但有部分是統一的,作為2進位檔案的簡單的寫入,建立,刪除應該都是一樣的,所以把這部分放到了LocalFile中去了。類圖如下:

在頁面上利用一個HtmlInputFile控制項,後台代碼調用UploadFileFrame的建構函式,這裡需要傳入一個System.Web.HttpPostedFile,所有的關於上傳檔案的資訊就都在這裡面了。整個上傳的過程就是下面這樣:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.