总在用别人的控件,第一次想自己写个控件。于是写了个简单的小控件,主要是用于自己学习和其他想尝试写控件的朋友,请多多指教。
改控件主要作用是将本地图片上传到自定义目录。
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);
}
}
}