Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)


复制代码 代码如下:

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
}
}



相关阅读:
如何在 Microsoft Visual Studio 2005 中创建控制台应用程序
javascript实现鼠标选取拖动或Ctrl选取拖动
js 函数的副作用分析
asp.NET开发中正则表达式中BUG分析
多字段模糊搜索的函数
JS 日历控件(蓝色)
网页变灰配合全国哀悼日的css代码 20100421
Linux下创建自解压tar文件
JavaScript 实现 Konami Code
js 返回时间戳所对应的具体时间
二十行语句实现从Excel到mysql的转化
blockquote标记应用注意
实例解析 用Linux操作系统构建的路由器
编写线程安全的JSP应用程序
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 《课间十分钟》直播实录作文450字 小学六年级作文650字:放学路上 红尘之事 奇妙的门铃作文1200字 日记一则:坚持就能成功200字 八十五句韩寒经典语录,喜欢韩寒的人一定要转哦 高中高三作文2500字:喜羊羊与灰太狼岁月之书 小学五年级作文500字:和补习班“作战” 远如云烟的思念 工程管理局建国60年征文:历经风雨磨炼 明珠更加璀璨 乐凯公司实践报告 叶子的不舍与追寻 小学四年级作文600字:参观兵马俑 我来世上走一遭,准备留下些什么? 妇女节是哪天?妇女节的意义 肯定的反义词是什么 标准答案 月下梅 关于五四青年节短信大全 用回忆写下的感慨 我想最难忘的一段恋情 寻找快乐的故事 一元钱的幸福旅行作文1200字 建设工程施工阶段造价动态控制探析 忽而今夏、少年天涯 我真的很不错 女孩子二十岁之后的每一年,都很重要 最浪漫的爱情宣言 我们的胜利日作文600字 唤起心底的柔情 芦际潭 有趣的美术课作文500字 奉酬袭美秋晚见题二首 送李山人往湘中 好久以后,我才知道你是哪颗星。 优秀军训心得体会开头 让时间管理有序化 第一次越野赛孙翔宇作文200字 诚意待人终有得,平心做事天地宽 相遇,在湘域 中国人为何不习中国艺 植树节的由来,中国的植树节 网上魔鬼作文1700字 陈。结绮阁 入团申请书600字范文5篇 2016领导干部任职表态发言稿大全 女人无所谓正派,男人无所谓忠诚 街道办事处2005年上半年工作总结 我心中的神作文500字 情人节寄语 关于消防安全的资料

Copyright © 2016 phpStudy |