📄 uploader.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Text;
using System.Web;
using System.Web.SessionState;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.IO;
using System.Text.RegularExpressions;
namespace X2Design.UI
{
/// <summary>
/// 后缀名异常
/// </summary>
public class UploadExceptionInvalidExtention:System.Exception
{
}
/// <summary>
/// 文件大小过大异常
/// </summary>
public class UploadExceptionTooLargeSize:System.Exception
{
}
/// <summary>
/// 上传文件不存在异常
/// </summary>
public class UploadExceptionNoPostedFile:System.Exception
{
}
/// <summary>
/// 通用的上传组件
/// </summary>
public class Uploader
{
/// <summary>
/// 允许上传的文件最大体积,单位为KB,默认为1000KB
/// </summary>
protected int MaxSize=1000;
/// <summary>
/// 散列表用于存储允许的后缀名
/// </summary>
protected System.Collections.Hashtable hash=new System.Collections.Hashtable();
/// <summary>
/// HTML控件:HtmlInputFile
/// </summary>
protected System.Web.UI.HtmlControls.HtmlInputFile uploadFile;
/// <summary>
/// 构造函数。
/// </summary>
/// <param name="uploadFile">HtmlInputFile服务器控件。</param>
public Uploader(System.Web.UI.HtmlControls.HtmlInputFile _uploadFile)
{
uploadFile=_uploadFile;
}
/// <summary>
/// 获得文件后缀
/// </summary>
/// <returns>文件的后缀名</returns>
public string GetExtention()
{
return System.IO.Path.GetExtension(uploadFile.PostedFile.FileName);
}
/// <summary>
/// 保存文件
/// </summary>
/// <param name="filePath">要保存的文件路径</param>
public void Save(string filePath)
{
this.CheckExtention();
this.CheckSize();
uploadFile.PostedFile.SaveAs(filePath);
}
/// <summary>
/// 允许的后缀名
/// </summary>
/// <param name="ext"></param>
public void AllowExt(string ext)
{
hash.Add(ext,null);
}
/// <summary>
/// 设置最大允许的文件大小
/// </summary>
/// <param name="size">文件大小,单位为KB</param>
public void SetMaxsize(int size)
{
this.MaxSize=size*1000;
}
/// <summary>
/// 验证可接收的文件类型。
/// </summary>
private void CheckExtention()
{
string ext=this.GetExtention();
if(hash.ContainsKey(ext))throw new UploadExceptionInvalidExtention();
}
/// <summary>
/// 验证上传文件的大小是否超过指定值
/// </summary>
private void CheckSize()
{
int size=uploadFile.PostedFile.ContentLength;
if(size==0)throw new UploadExceptionNoPostedFile();
if(size>this.MaxSize*1000)throw new UploadExceptionTooLargeSize();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -