总在用别人的控件,第一次想自己写个控件。于是写了个简单的小控件,主要是用于自己学习和其他想尝试写控件的朋友,请多多指教。 改控件主要作用是将本地图片上传到自定义目录。 using System; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel; using System.Web.UI.HtmlControls; using System.IO;
namespace UpLoadImage { /// <summary> ///作者:DarkAngel 2004-10-27日创建 ///支持图片上传到服务器功能 /// </summary> [DefaultProperty("Text"), ToolboxData(@"<{0}:UpImage runat=server></{0}:UpImage>")] public class UpImage : Control, INamingContainer { protected int filelength; protected string imageUrl; protected string mydirectory; static string LogoURL; protected string vpicture; public Button mybutton; public HtmlInputFile fileUpload; public Label Label1; public UpImage() { this.EnsureChildControls(); } [Bindable(true), Category("Appearance"), DefaultValue("")] [ DescriptionAttribute("文件大小") ] public int FileLength { set{filelength=value;} get{return filelength;} } [ DescriptionAttribute("图片名字") ] public string ImageUrl { set{imageUrl=value;} get{return imageUrl;} } [ DescriptionAttribute("文件路径") ] public string MyDirectory { get{return mydirectory;} set{mydirectory=value;} } [ DescriptionAttribute("图片的相对地址") ] public string Logo { get{return LogoURL;} set{LogoURL=value;} } [ DescriptionAttribute("是否显示图片") ] public string vPicture { set{vpicture=value;} get{return vpicture;} }
private void mybutton_Click(object sender, System.EventArgs e) { if(!fileUpload.Value.ToString().Equals("")) { LogoURL=fileUpload.PostedFile.FileName.ToString(); LogoURL=LogoURL.Substring(LogoURL.LastIndexOf("."),(LogoURL.Length-LogoURL.LastIndexOf("."))); if(fileUpload.PostedFile.ContentLength>filelength) { myScript("图片超过指定大小!");
} else { if(LogoURL.Equals(".jpg") || LogoURL.Equals(".bmp") || LogoURL.Equals(".gif")) {
LogoURL=mydirectory+"\\"+imageUrl+LogoURL; mydirectory=Page.Server.MapPath(" ")+"\\"+mydirectory;
if(Directory.Exists(mydirectory)) { } else { Directory.CreateDirectory(mydirectory); } fileUpload.PostedFile.SaveAs(Page.Server.MapPath(" ")+"\\"+LogoURL);
if(vpicture.Equals("1")) { Label1.Text="<img width='100' heigth='100' src='"+LogoURL+"'>"; }
myScript("图片上传成功!"); } else { myScript("文件类型不对!"); }
} } } protected void myScript(string java) { Page.RegisterStartupScript("fsf","<script language=javascript>alert('"+java+"');</script>");
}
protected override void CreateChildControls() { mybutton=new Button(); fileUpload=new HtmlInputFile(); Label1=new Label(); mybutton.Text="提交"; this.Controls.Add(fileUpload); this.Controls.Add(mybutton); this.Controls.Add(new LiteralControl("<p>")); this.Controls.Add(Label1); this.Controls.Add(new LiteralControl("</p>")); mybutton.Click+=new EventHandler(mybutton_Click); } } }

|