Asp.net 文件上传类(取得文件后缀名,保存文件,加入文字水印)
发布时间:2020-12-15 20:45:24 所属栏目: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.U
复制代码 代码如下: 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,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-mvc-4 – 如何解决Antlr3依赖地狱
- asp.net – 如何将转发器中Item的客户端ID传递给javascript
- asp.net-mvc – 组合数据注释属性
- asp.net – sql server报告服务和其他报告工具之间有什么区
- asp.net简单生成XML文件的方法
- asp.net – 在根站点下托管的应用程序中配置子目录验证模式
- asp.net-web-api – webapi中的attributerouting限制
- 确定ASP.NET站点的“活动”用户数
- asp.net-mvc – 升级到Visual Studio 2015会使intellisense
- asp.net – LINQ to SQL – 如何选择特定的列和返回强类型列
推荐文章
站长推荐
- asp.net-mvc – 什么是上下文?
- asp.net-mvc – 在cshtml中折叠C#块并保存
- asp.net-mvc – 将http://mydomain.com/ctrlr/ac
- asp.net-mvc – 如何阻止ASP.Net MVC Html.Actio
- asp.net – App Settings和connectionStrings配置
- .net – 事件验证:允许__doPostBack用于一个控件
- yield在WCF中的错误使用——99%的开发人员都有可
- asp.net-mvc – 在Asp.Net MVC 2中有一种更好的方
- ASP.NET是否需要ActiveX?
- ASP.NET MVC – Session为null
热点阅读