很多在网上找到的控件功能强大复杂却有点麻烦,

主要是上传路径和回调的问题,伤脑筋,自己写了个控件,感觉还成。


******可以动态配置用户文档路径/支持事件回调***********************************

******功能有限,希望大家多多包含**********************************************

******控件目前只支持单个大文件传递********************************************

******支持IE5以上,aspnet 1.1***********************************-_-*****

******************************************************************************


1.在webconfig中添加以下内容:


<httpHandlers>

        <add verb="*" path="uploadfile.aspx" type="LTAjaxUpFile.hc.UpFile,Uploadfile" />

        <add verb="*" path="QueryLoadStatu.aspx" type="LTAjaxUpFile.Uploadfile.QueryLoadStatu,Uploadfile" />


</httpHandlers>


2.参照default.aspx的例子 


 1 protected LTAjaxUpFile.Uploadfile.ltuploadfilecontrol ltuploadfilecontrol;
 2     
 3         private void Page_Load(object sender, System.EventArgs e)
 4         {
 5             if(!Page.IsPostBack)
 6             {
 7                 //使用控件需要以下4个步骤,应该不烦琐吧
 8                 ltuploadfilecontrol.FilePath = "files\\lt1";//1.这里可以动态设置上传的目录路径,文件名由控件自动生成
 9                 ltuploadfilecontrol.RenderHtml();//2.
10 
11                 //3.UploadOkEventHandler事件为文件上传完毕后回调事件
12                 ltuploadfilecontrol._UploadOkEventHandler+=new LTAjaxUpFile.Uploadfile.ltuploadfilecontrol.GetFilePath(userFileUpLoadFinishedEventHandler);
13             }
14             // 在此处放置用户代码以初始化页面
15         }
16 
17         //4.定义一个事件处理过程加入到UploadOkEventHandler中
18         //事件在参数-servpath中返回服务器的文件保存绝对路径,-oldfilename则是原来的文件名字
19         private void userFileUpLoadFinishedEventHandler(string servpath,string oldfilename)
20         {
21             //可以在这里处理它们,比如放到数据库等,
22             FileStream fs = new FileStream(Server.MapPath("file.txt"),FileMode.Create,FileAccess.ReadWrite);
23             byte[] bs = Encoding.GetEncoding("gb2312").GetBytes(servpath);
24             byte[] bs1 = Encoding.GetEncoding("gb2312").GetBytes("\r\n"+oldfilename);
25             fs.Write(bs,0,bs.Length);
26             fs.Write(bs1,0,bs1.Length);
27             fs.Close();
28         }


[注意:如果在本机或LAN测试的情况下,传输速度不能做准,因为几十M/百M的情况是

十分正常,控件只考虑了公网的情况。。。


Ajax UpLoadFile 控件及应用范例_文件名