我們找了一個很棒的範例,並透過它來改寫
希望讓初學者從「可以寫」、「可以動」之外,還能變得更好
感謝網友的範例
http://jengting.blogspot.tw/2014/10/fileupload.html
我想大部分的書籍都會提到這些功能, 例如:
上傳時,檔名重複該怎麼辦?
上傳時,忘了選擇檔案,會出現警告?
上傳時,只能上傳「GIF or Jpg 圖片檔」,該怎麼作?
我想初學者能寫的就是「流水帳」的程式
一列、一列慢慢寫
一個功能、一個功能慢慢寫
*** 先別擔心 ***
初學者能這樣做就不錯了,畢竟您熟悉了「控制項」也會寫「基礎的程式流程」
......如果......我想讓程式寫的更好,該怎麼作?
......如果......我想透過OOP(物件導向)的一些 "簡單基礎"來做,該怎麼入門?
(物件導向的很多書,太理論了。 或許我用不到那麼多,能否針對我現有的範例,改寫給我看看?)
以上面的範例來說,我們將修改如下:
http://jengting.blogspot.tw/2014/10/fileupload.html
第一,寫成一個簡單的類別檔(Class1.cs 或是 Class1.vb)
先把程式 Copy起來,放到類別檔裡面,
以後會(重複)用到,不用每次都重寫一段(重複的)程式碼
日後如果要改,也可以統一維護
public class Class1
{
public static void doA(System.Web.UI.WebControls.FileUpload FU1, System.Web.UI.WebControls.Label lblMessage) {
if (FU1.HasFile == false) return;
...... 程式部分省略 ......
}
}
一般的初學者,通常只會把「重複的程式」
Copy出來,希望以後能 "共用" ...... 不要擔心!第一步能這樣做已經很棒囉!
*************************************************************************************************************************
第二,微調一下
程式再做修改......哪裡還可以改善呢??
/// <summary>
/// 處理結果只需要傳回string,至於要show在label, literal, 或alert,由網頁自行決定
/// </summary>
public class Class2
{
public static string doA(System.Web.UI.WebControls.FileUpload FU1)
{
string message = string.Empty;
if (FU1.HasFile == false) return message;
...... 程式部分省略 ......
return message;
}
}
*************************************************************************************************************************
第三,把常用的、常改的數值,拉出來寫成「屬性」
例如:檔案上傳後,要存檔的目錄?路徑?
哪些檔案(副檔名),可以上傳?
檔案大小的限制?多大容量的檔案才能上傳??
這些東西(設定值)是不是常常會修改呢?
寫在程式碼裡面,將來要改就不容易囉!
詳見全文:http://www.dotblogs.com.tw/mis2000lab/archive/2014/12/24/fileupload_class_property_allenkuo.aspx