Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
来源:互联网 发布:留学 网站 知乎 编辑:程序博客网 时间:2024/05/21 07:59
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
namespace EC
......{
/**//**//**//// <summary>
/// 上传类
/// </summary>
public class UploadObj
......{
public UploadObj()
......{
//
// TODO: 在此处添加构造函数逻辑
//
}
/**//**//**//// <summary>
/// 允许文件上传的类型枚举
/// </summary>
public enum FileType
......{
jpg,gif,bmp,png
}
取得文件后缀取得文件后缀#region 取得文件后缀
/**//**//**//// <summary>
/// 取得文件后缀
/// </summary>
/// <param name="filename">文件名称</param>
/// <returns></returns>
public static string GetFileExtends(string filename)
......{
string ext = null;
if (filename.IndexOf('.') > 0)
......{
string[] fs = filename.Split('.');
ext = fs[fs.Length - 1];
}
return ext;
}
#endregion
检测文件是否合法检测文件是否合法#region 检测文件是否合法
/**//**//**//// <summary>
/// 检测上传文件是否合法
/// </summary>
/// <param name="fileExtends">文件后缀名</param>
/// <returns></returns>
public static bool CheckFileExtends(string fileExtends)
......{
bool status = false;
fileExtends = fileExtends.ToLower();
string[] fe = Enum.GetNames(typeof(FileType));
for (int i = 0; i < fe.Length; i++)
......{
if (fe[i].ToLower() == fileExtends)
......{
status = true;
break;
}
}
return status;
}
#endregion
保存文件保存文件#region 保存文件
/**//**//**//// <summary>
/// 保存文件
/// </summary>
/// <param name="fpath">全路径,Server.MapPath()</param>
/// <param name="myFileUpload">上传控件</param>
/// <returns></returns>
public static string PhotoSave(string fpath,FileUpload myFileUpload)
......{
string s = "";
string fileExtends = "";
string fileName = myFileUpload.FileName;
if (fileName != "")
......{
//取得文件后缀
fileExtends = EC.UploadObj.GetFileExtends(fileName);
if (!EC.UploadObj.CheckFileExtends(fileExtends))
......{
EC.MessageObject.ShowPre("上传文件类型不合法");
}
Random rd = new Random();
s = EC.RandomObject.DateRndName(rd) + "." + fileExtends;
string file = fpath + "" + s;
try
......{
myFileUpload.SaveAs(file);
}
catch (Exception ee)
......{
throw new Exception(ee.ToString());
}
}
return s;
}
#endregion
加入文字水印加入文字水印#region 加入文字水印
/**//**//**//// <summary>
/// 加入文字水印
/// </summary>
/// <param name="fileName">文件名称路径(全路径)</param>
/// <param name="text">文件</param>
public void AddTextToImg(string fileName, string text)
......{
if (!File.Exists(fileName))
......{
throw new FileNotFoundException("文件不存在");
}
if (text == string.Empty)
......{
return;
}
//判断文件类型是否为图像类型
System.Drawing.Image image = System.Drawing.Image.FromFile(fileName);
Bitmap bitmap = new Bitmap(image, image.Width, image.Height);
Graphics g = Graphics.FromImage(bitmap);
float fontSize = 12.0f;//字体大小
float textWidth = text.Length * fontSize;//文本的长度
//下面定义一个矩形区域,以后在这个矩形里面画上白底黑字
float rectX = 0;
float rectY = 0;
float rectWidth = text.Length * (fontSize + 8);
float rectHeight = fontSize + 8;
//声明矩形域
RectangleF textArea = new RectangleF(rectX, rectY, rectWidth, rectHeight);
Font font = new Font("宋体", fontSize);//定义字体
Brush whiteBrush = new SolidBrush(Color.White);//白笔刷,画文字用
Brush blackBrush = new SolidBrush(Color.Black);//黑笔刷,画背景用
g.FillRectangle(blackBrush, rectX, rectY, rectWidth, rectHeight);
g.DrawString(text, font, whiteBrush, textArea);
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, ImageFormat.Jpeg);
//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
//Response.Clear();
//Response.ContentType = "image/jpeg";
//Response.BinaryWrite(ms.ToArray());
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
#endregion
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
namespace EC
......{
/**//**//**//// <summary>
/// 上传类
/// </summary>
public class UploadObj
......{
public UploadObj()
......{
//
// TODO: 在此处添加构造函数逻辑
//
}
/**//**//**//// <summary>
/// 允许文件上传的类型枚举
/// </summary>
public enum FileType
......{
jpg,gif,bmp,png
}
取得文件后缀取得文件后缀#region 取得文件后缀
/**//**//**//// <summary>
/// 取得文件后缀
/// </summary>
/// <param name="filename">文件名称</param>
/// <returns></returns>
public static string GetFileExtends(string filename)
......{
string ext = null;
if (filename.IndexOf('.') > 0)
......{
string[] fs = filename.Split('.');
ext = fs[fs.Length - 1];
}
return ext;
}
#endregion
检测文件是否合法检测文件是否合法#region 检测文件是否合法
/**//**//**//// <summary>
/// 检测上传文件是否合法
/// </summary>
/// <param name="fileExtends">文件后缀名</param>
/// <returns></returns>
public static bool CheckFileExtends(string fileExtends)
......{
bool status = false;
fileExtends = fileExtends.ToLower();
string[] fe = Enum.GetNames(typeof(FileType));
for (int i = 0; i < fe.Length; i++)
......{
if (fe[i].ToLower() == fileExtends)
......{
status = true;
break;
}
}
return status;
}
#endregion
保存文件保存文件#region 保存文件
/**//**//**//// <summary>
/// 保存文件
/// </summary>
/// <param name="fpath">全路径,Server.MapPath()</param>
/// <param name="myFileUpload">上传控件</param>
/// <returns></returns>
public static string PhotoSave(string fpath,FileUpload myFileUpload)
......{
string s = "";
string fileExtends = "";
string fileName = myFileUpload.FileName;
if (fileName != "")
......{
//取得文件后缀
fileExtends = EC.UploadObj.GetFileExtends(fileName);
if (!EC.UploadObj.CheckFileExtends(fileExtends))
......{
EC.MessageObject.ShowPre("上传文件类型不合法");
}
Random rd = new Random();
s = EC.RandomObject.DateRndName(rd) + "." + fileExtends;
string file = fpath + "" + s;
try
......{
myFileUpload.SaveAs(file);
}
catch (Exception ee)
......{
throw new Exception(ee.ToString());
}
}
return s;
}
#endregion
加入文字水印加入文字水印#region 加入文字水印
/**//**//**//// <summary>
/// 加入文字水印
/// </summary>
/// <param name="fileName">文件名称路径(全路径)</param>
/// <param name="text">文件</param>
public void AddTextToImg(string fileName, string text)
......{
if (!File.Exists(fileName))
......{
throw new FileNotFoundException("文件不存在");
}
if (text == string.Empty)
......{
return;
}
//判断文件类型是否为图像类型
System.Drawing.Image image = System.Drawing.Image.FromFile(fileName);
Bitmap bitmap = new Bitmap(image, image.Width, image.Height);
Graphics g = Graphics.FromImage(bitmap);
float fontSize = 12.0f;//字体大小
float textWidth = text.Length * fontSize;//文本的长度
//下面定义一个矩形区域,以后在这个矩形里面画上白底黑字
float rectX = 0;
float rectY = 0;
float rectWidth = text.Length * (fontSize + 8);
float rectHeight = fontSize + 8;
//声明矩形域
RectangleF textArea = new RectangleF(rectX, rectY, rectWidth, rectHeight);
Font font = new Font("宋体", fontSize);//定义字体
Brush whiteBrush = new SolidBrush(Color.White);//白笔刷,画文字用
Brush blackBrush = new SolidBrush(Color.Black);//黑笔刷,画背景用
g.FillRectangle(blackBrush, rectX, rectY, rectWidth, rectHeight);
g.DrawString(text, font, whiteBrush, textArea);
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, ImageFormat.Jpeg);
//输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
//Response.Clear();
//Response.ContentType = "image/jpeg";
//Response.BinaryWrite(ms.ToArray());
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
#endregion
}
}
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
- Asp.Net文件上传【包括上传原图,图片水印图,文字水印图,缩略图】
- ASP.NET文件后缀名
- NET 用户控件 文件上传,并给图片文件加水印(增加文字水印文字设置)
- php取得文件后缀名
- Asp.Net上传文件,保存文件路径到数据库
- Asp.net文件上传类
- ASP.net 上传文件类
- asp.net文件上传
- ASP.Net文件上传
- ASP.Net文件上传
- ASP.NET上传文件
- 读书社区最新活动:读免费畅销图书、寻通关密码、得C币大奖
- 数据库基础
- IP 安全
- ABAP--一个读取EXCEL单元格的内容超过256个字符的代码样例
- Visual C#常用函数和方法集汇总
- Asp.net 文件上传基类(取得文件后缀名,保存文件,加入文字水印)
- 一般配置问题
- 利用xmlhttp组件获取远程文件保存到当前空间
- C语言嵌入式系统编程修炼之道——键盘操作篇
- C# Enum设计和使用的相关技巧
- Windows 98
- [OS] 扇区定位
- Windows 98拨号网络
- volatile的用法