Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)_asp.net教程-查字典教程网
Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingS...

复制代码 代码如下:

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

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类