Anthem.NET可以在此下载:http://sourceforge.net/project/showfiles.php?group_id=151897&package_id=168043&release_id=493609
下载之后解压缩至硬盘中的某一目录中,编译项目得到Anthem.dll。然后将其拷贝到Web站点的bin目录下,添加引用。
打开要使用这个控件的Web站点的Web.config文件,在<configuration>\ <system.web>\ <pages>\ <controls>中添加如下一行,注册Anthem.NET控件:
1 <system.web> 2 <pages> 3 <controls> 4 <add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/> 5 </controls> 6 </pages>
Anthem.NET提供了一套自己就带有Ajax功能的、继承于现有ASP.NET控件的服务器端控件。根据上面在web.config文件中的注册,这部分控件的前缀为anthem。
Anthem.NET的Ajax文件上传
Anthem.NET中的Ajax文件上传功能靠的是其自己的FileUpload控件,其实使用起来和普通的ASP.NET FileUpload控件差不多,下面是HTML部分的代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <anthem:FileUpload ID="anthemFileUpload" runat="server" Width="185px" /> 2 <anthem:Button ID="anthemUploadButton" runat="server" EnabledDuringCallBack="false" OnClick="anthemUploadButton_Click" 3 Text="上传" Width="70px" TextDuringCallBack="上传中..." /> 4 <anthem:Label ID="Label1" runat="server" Text=""></anthem:Label> 5 <br /> 6 <anthem:Image ID="Image1" Visible="false" runat="server" />
注意控件的前缀都是anthem。那个Button的TextDuringCallBack属性设置了异步回送时按钮中的文本;EnabledDuringCallBack属性让该按钮在进行异步回送时禁用,免得用户等得不耐烦。
后台代码同样是将文件名和文件大小显示出来,不过注意这一句anthemResultLabel.UpdateAfterCallBack = true;,用来在回调之后更新anthemResultLabel上的文字:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 protected void anthemUploadButton_Click(object sender, EventArgs e) //上传产品Logo 2 { 3 string path = Server.MapPath("~/ProductImg/"); 4 if (lblPic.Text != "") 5 { 6 if (System.IO.File.Exists(path + lblPic.Text)) 7 { 8 System.IO.File.Delete(path + lblPic.Text); 9 } 10 } 11 bool fileOK = false; 12 bool filesize = false; 13 string fileExtension = System.IO.Path.GetExtension(anthemFileUpload.FileName).ToLower(); 14 string[] allowedExtensions = { ".gif", ".jpg", ".png", ".bmp", }; 15 for (int i = 0; i < allowedExtensions.Length; i++) 16 { 17 if (fileExtension == allowedExtensions[i]) 18 { 19 fileOK = true; 20 } 21 } 22 23 if (anthemFileUpload.PostedFile.ContentLength > 1500000) 24 { 25 fileOK = false; 26 filesize = true; 27 } 28 29 if (fileOK) 30 { 31 try 32 { 33 Random RaName = new Random(); 34 string RandomName = RaName.Next(100).ToString(); 35 string PicFullName = System.DateTime.Now.ToString("yyyyMMddhhmmss") + RandomName + fileExtension; 36 anthemFileUpload.SaveAs(path + PicFullName); 37 lblPic.Text = PicFullName; 38 Image1.Visible = true; 39 Image1.ImageUrl = "~/ProductImg/" + PicFullName;//在本页显示相片要用anthem控件 40 Image1.UpdateAfterCallBack = true; 41 Label1.Text = "上传成功!"; 42 Label1.UpdateAfterCallBack = true; 43 } 44 finally 45 { 46 } 47 } 48 else 49 { 50 if (filesize) 51 { 52 Label1.Text = "上传失败,上传图片文件小于150K"; 53 Label1.UpdateAfterCallBack = true; 54 } 55 else 56 { 57 Label1.Text = "上传失败,只能上传:.jpg .bmp .gif .png的图片!"; 58 Label1.UpdateAfterCallBack = true; 59 } 60 } 61 }