庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>WEB开发>ASP.NET>开发实例>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

自己写的自定义Web的上传控件

 作者:本站收集   日期:2005-3-17
字号选择〖 〗/ 双击滚屏 单击停止   


using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;
using System.Drawing.Design;
namespace Yingnet.Common
{
/// <summary>
/// FileUpload 的摘要说明。E:\program\Common\FileUpload.bmp
/// </summary>
[ToolboxBitmap(typeof(Yingnet.Common.FileUpload), "FileUpload.bmp"),
DefaultProperty("Text"), DefaultEvent("Click"),
ToolboxData("<{0}:FileUpload runat=server></{0}:FileUpload>")]
public class FileUpload : System.Web.UI.WebControls.WebControl {
  /// <summary>
  /// 上传按钮
  /// </summary>
  private Button button=new Button();
  /// <summary>
  /// 上传文件个数
  /// </summary>
  private int filenum=1;
  /// <summary>
  /// File对象
  /// </summary>
  private HtmlInputFile[] file;
  /// <summary>
  /// 保存路径,默认为系统的临时目录
  /// </summary>
  private string path=System.IO.Path.GetTempPath();
  /// <summary>
  /// 上传的文件名组
  /// </summary>
  private string[] filename;
  /// <summary>
  /// 后缀文件名组
  /// </summary>
  private string[] suffix;
  /// <summary>
  ///过滤器,写法是.txt;.abc
  /// </summary>
  private string filter="";
  /// <summary>
  /// 限制文件上传大小,为0是不限制,单位是字节
  /// </summary>
  private int size=0;//System.ComponentModel.DefaultEventAttribute
  
    /// <summary>
    /// 上传事件
    /// </summary>
  [Bindable(true),Category("事件"),Description("上传后激发的事件")
  ]
  public event EventHandler Click;
  /// <summary>
  /// 上传文件数
  /// </summary>
  [Bindable(true),
  Category("参数"),Description("设定上传文件的个数"),
  DefaultValue("1")]
  public int FileNum{
   set{
    if(value<1){
     value=1;
    }
    filenum=value;
    this.Controls.Clear();
    file=new HtmlInputFile[filenum];
    filename=new string[filenum];
    suffix=new string[filenum];
    for(int i=0;i<filenum;i++) {
     file[i]=new HtmlInputFile();
     this.Controls.Add(file[i]);
    }
    this.Controls.Add(button);
   }
   get{
    return filenum;
   }
  }
  /// <summary>
  /// 上传按钮的文本
  /// </summary>
  [Bindable(true),
  Category("参数"), Description("设定上传文件的路径"),
  DefaultValue("1")]
   /// <summary>
   /// 上传路径
   /// </summary>
  public string UploadPath {
   set{
    if("".Equals(value)||value==null){
     value=System.IO.Path.GetTempPath();
    }
    path=value;
   }
   get{
    return path;
   }
  }
  /// <summary>
  /// 得到文件名
  /// </summary>
  public string[] Filename{
   get{
    return filename;
   }
  }
  /// <summary>
  /// 得到后缀
  /// </summary>
  public string[] Suffix{
   get{
    return  suffix;
   }
  }
  /// <summary>
  /// 过滤器
  /// </summary>
  public string Filter{
   set{
    filter=value;
   }
   get{
    return filter;
   }
  }
  /// <summary>
  /// 限制大小
  /// </summary>
  public int FileSize{
   set{
    size=value;
   }
   get{
    return size;
   }
  }
  /// <summary>
  /// 快捷键
  /// </summary>
  public override string AccessKey{
   get{
    return button.AccessKey;
   }
   set{
    button.AccessKey=value;
   }
  }
  /// <summary>
  /// 背景
  /// </summary>
  public override System.Drawing.Color BackColor{
   get{
    return button.BackColor;
   }
   set{
    button.BackColor=value;
   }
  }
  /// <summary>
  /// 边框颜色
  /// </summary>
  public override System.Drawing.Color BorderColor{
   get{
    return button.BorderColor;
   }
   set{
    button.BorderColor=value;
   }
  }
  /// <summary>
  /// 边框风格
  /// </summary>
  public override BorderStyle BorderStyle{
   get{
    return button.BorderStyle;
   }
   set{
    button.BorderStyle=value;
   }
  }
  /// <summary>
  /// 文本
  /// </summary>
  [Bindable(true),
   Category("Appearance"),
   DefaultValue("")]
  public string Text
  {
   get
   {
    return button.Text;
   }
   set
   {
    button.Text = value;
   }
  }
  
  public FileUpload():base(){
   
   FileNum=1;
   button.Click+=new EventHandler(this.button_Click);
   this.Controls.Add(button);
   
  }
  /// <summary>
  /// 按钮事件
  /// </summary>
  /// <param name="sender"></param>
  /// <param name="e"></param>
  private void button_Click(object sender, EventArgs e){
   Upload();
   ///添加你的代码
   if(Click!=null)
    Click(sender,e);  ///抛处事件
  }
  /// <summary>
  /// 上传
  /// </summary>
  private void Upload(){
   System.Web.HttpPostedFile postedFile;
   for(int i=0;i<filenum;i++){
    try{
     postedFile=file[i].PostedFile;
     if(postedFile!=null) {
      if(postedFile.ContentLength>size && size!=0){
       break;
      }
      string suf=GetSuffix(postedFile.FileName);
      if(filter!=null && filter.IndexOf(suf)>-1){
       break;
      }
      filename[i]=DateTime.Now.Ticks.ToString();
      suffix[i]=suf;
      postedFile.SaveAs(System.IO.Path.Combine(path,filename[i]+suf));
      
     
     }
    }finally{
     filename[i]="";
    }
   }
  }
  /// <summary>
  /// 获取后缀名
  /// </summary>
  /// <param name="filename">文件名</param>
  /// <returns>返回带.的后缀名</returns>
  private string GetSuffix(string filename){
   int index=filename.LastIndexOf(".");
   if(index>0){
    return filename.Substring(index);
   }
   return "";
  }
   
}
}

上一篇:用ASP.NET写你自己的代码生成器    下一篇:一个SDK里做聊天室的例子  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-17
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿