ASP.NET - Ajax UpLoadFile 多個大文件上傳控件及應用範例

******作者語:這個控件很早就寫了,但一直沒有去完善***********************
******現在重新整理了一次,應該方便了許多,希望大家多多提意見*********
******該版本支持ASPNET1.0、2.0 ******************
******支持多個大文件隊列傳輸傳遞*********************
******支持IE6、7/FF2.0、3.0 *************************************
****** ^(^]***************************

[版本更新 uploadfile 1.15  2008-1-15 by lt]
重要修改下:
1、修改文件字符集支持,如果遇到編碼問題請把
<uploadctrl:ltuploadfilecontrol id="ltuploadfilecontrol" runat="server" Encode="gb2312" FilePath = "\\files\\lt1" FileMax=20000000></uploadctrl:ltuploadfilecontrol>
2、FilePath和FileMax的全局問題已經修正,即使在同一個頁面,多個上傳控件實例之間的屬性獨立,例如:
<uploadctrl:ltuploadfilecontrol id="ltuploadfilecontrolA" runat="server" Encode="gb2312" FilePath = "\\files\\lt1" FileMax=20000000></uploadctrl:ltuploadfilecontrol>。    

<uploadctrl:ltuploadfilecontrol id="ltuploadfilecontrolB" runat="server" Encode="gb2312" FilePath = "\\files\\lt3" FileMax=50000000></uploadctrl:ltuploadfilecontrol>
可以成立,修正了FilePath 後,文件路徑探測***已經被堵塞了,可以放心。
private void Page_Load(object sender, System.EventArgs e)
                    {
                            if(!Page.IsPostBack)
                            {
                                    //使用控件需要以下4個步驟,應該不煩瑣吧
    
                                    //ProcessBarBorderStyle控制進度條邊框式樣;不處理則用默認樣式
                                    LTAjaxUpFile.Uploadfile.ltuploadfilecontrol.ProcessBarBorderStyle = "BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: black 1px solid; PADDING-LEFT: 1px; VISIBILITY: hidden; PADDING-BOTTOM: 1px; BORDER-LEFT: black 1px solid; WIDTH: 200px; PADDING-TOP: 1px; BORDER-BOTTOM: black 1px solid";
                                    //ProcessBarBorderStyle控制進度條顏色;不處理則用默認樣式
                                 LTAjaxUpFile.Uploadfile.ltuploadfilecontrol.ProcessBarBlockColor = "red";
                                 //FeedbackDivCSS控制實時反饋信息式樣;不處理則用默認樣式
                                 LTAjaxUpFile.Uploadfile.ltuploadfilecontrol.FeedbackDivCSS = "feedbackstyle";
                                    
                                 ltuploadfilecontrol.FilePath = "files\\lt1";//1.這裏可以動態設置上傳的目錄路徑,文件名由控件自動生成
                                 //FILE控件的CSS控制class;不處理則用默認式樣
                                 ltuploadfilecontrol.FileBoxCSSClass = "upfilebuttonstyle";
                                    
    
                                 Ltuploadfilecontrol2.FilePath = "files\\lt1";//1.這裏可以動態設置上傳的目錄路徑,文件名由控件自動生成
                                 ltuploadfilecontrol.FileBoxCSSClass = "upfilebuttonstyle";
                                    

                                 Ltuploadfilecontrol3.FilePath = "files\\lt1";//1.這裏可以動態設置上傳的目錄路徑,文件名由控件自動生成
                                 ltuploadfilecontrol.FileBoxCSSClass = "upfilebuttonstyle";
                                    
    
                                    
                                 //3.UploadOkEventHandler事件爲文件上傳完畢後處理回調
                                 ltuploadfilecontrol._UploadOkEventHandler+=new LTAjaxUpFile.Uploadfile.ltuploadfilecontrol.GetFilePath(userFileUpLoadFinishedEventHandler);
                         }
                        // 在此處放置用戶代碼以初始化頁面
                 }
    
                 //4.定義一個事件處理過程加入到UploadOkEventHandler中
                 //事件在參數-servpath中返回服務器的文件保存絕對路徑,-oldfilename則是原來的文件名字
                 private void userFileUpLoadFinishedEventHandler(string servpath,string oldfilename)
                 {
                         //可以在這裏處理它們,比如放到數據庫等,
                         FileStream fs = new FileStream(Server.MapPath("file.txt"),FileMode.Create,FileAccess.ReadWrite);
                         byte[] bs = Encoding.GetEncoding("gb2312").GetBytes(servpath);
                         byte[] bs1 = Encoding.GetEncoding("gb2312").GetBytes("\r\n"+oldfilename);
                         fs.Write(bs,0,bs.Length);
                         fs.Write(bs1,0,bs1.Length);
                         fs.Close();
                 }

 
下載uploadfile.DLL組件  【解壓後覆蓋範例項目BIN下舊版本即可】

1.在webconfig中添加以下內容:
注意:如果遇到URL重寫,請確保上傳控件的載入先於重寫控件,即把ADD節點放在重寫控件的ADD前面
<httpHandlers>
                <add verb="*" path="uploadfile.aspx" type="LTAjaxUpFile.hc.UpFile,Uploadfile" />
                <add verb="*" path="QueryLoadStatu.aspx" type="LTAjaxUpFile.Uploadfile.QueryLoadStatu,Uploadfile" />
</httpHandlers>
2、 FilePath屬性中指定的路徑通常如果不存在,控件可自動創建,但由於某些空間配置問題無法創建,所以最好能在空間自己手動建立該文件夾,這樣就萬無一失了。
3.參照default.aspx的例子 
請在頁面中註冊本控件
<%@ Register TagPrefix="uploadctrl" Namespace="LTAjaxUpFile.Uploadfile" Assembly="Uploadfile"%>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章