·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> ASP.NET 图片上传工具类 upload image简单好用功能齐全

ASP.NET 图片上传工具类 upload image简单好用功能齐全

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net 图片上传工具类 upload image简单好用功能齐全

使用方法:

  UploadImage ui = new UploadImage();            /***可选参数***/            ui.SetWordWater = "哈哈";//文字水印            // ui.SetPicWater = Server.MapPath("2.png");//图片水印(图片和文字都赋值图片有效)            ui.SetPositionWater = 4;//水印图片的位置 0居中、1左上角、2右上角、3左下角、4右下角            ui.SetSmallImgHeight = "110,40,20";//设置缩略图可以多个            ui.SetSmallImgWidth = "100,40,20";            //保存图片生成缩略图            var reponseMessage = ui.FileSaveAs(Request.Files[0], Server.MapPath("~/file/temp"));            //裁剪图片            var reponseMessage2 = ui.FileCutSaveAs(Request.Files[0], Server.MapPath("~/file/temp2"), 400, 300, UploadImage.CutMode.CutNo);            /***返回信息***/            var isError = reponseMessage.IsError;//是否异常            var webPath = reponseMessage.WebPath;//web路径            var filePath = reponseMessage.filePath;//物理路径            var message = reponseMessage.Message;//错误信息            var directory = reponseMessage.Directory;//目录            var smallPath1 = reponseMessage.SmallPath(0);//缩略图路径1            var smallPath2 = reponseMessage.SmallPath(1);//缩略图路径2            var smallPath3 = reponseMessage.SmallPath(2);//缩略图路径3

  

效果:

源码:

using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Web;using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Drawing2D;using System.Collections;using System.Net;using System.Text.RegularExPRessions;using System.Configuration;namespace SyntacticSugar{    /// <summary>    /// ** 描述:图片上传类、支持水印、缩略图    /// ** 创始时间:2015-5-28    /// ** 修改时间:-    /// ** 修改人:sunkaixuan    /// ** 使用说明:http://www.cnblogs.com/sunkaixuan/p/4536626.html    /// </summary>    public class UploadImage    {        #region 属性        /// <summary>        /// 允许图片格式        /// </summary>        public string SetAllowFormat { get; set; }        /// <summary>        /// 允许上传图片大小        /// </summary>        public double SetAllowSize { get; set; }        /// <summary>        /// 文字水印字符        /// </summary>        public string SetWordWater { get; set; }        /// <summary>        /// 图片水印        /// </summary>        public string SetPicWater { get; set; }        /// <summary>        /// 水印图片的位置 0居中、1左上角、2右上角、3左下角、4右下角        /// </summary>        public int SetPositionWater { get; set; }        /// <summary>        /// 缩略图宽度多个逗号格开(例如:200,100)        /// </summary>        public string SetSmallImgWidth { get; set; }        /// <summary>        /// 缩略图高度多个逗号格开(例如:200,100)        /// </summary>        public string SetSmallImgHeight { get; set; }        /// <summary>        /// 是否限制最大宽度,默认为true        /// </summary>        public bool SetLimitWidth { get; set; }        /// <summary>        /// 最大宽度尺寸,默认为600        /// </summary>        public int SetMaxWidth { get; set; }        /// <summary>        /// 是否剪裁图片,默认true        /// </summary>        public bool SetCutImage { get; set; }        /// <summary>        /// 限制图片最小宽度,0表示不限制        /// </summary>        public int SetMinWidth { get; set; }        #endregion        public UploadImage()        {            SetAllowFormat = ".jpeg|.jpg|.bmp|.gif|.png";   //允许图片格式            SetAllowSize = 1;       //允许上传图片大小,默认为1MB            SetPositionWater = 4;            SetCutImage = true;        }        #region main method        /// <summary>        /// 裁剪图片        /// </summary>        /// <param name="PostedFile">HttpPostedFile控件</param>        /// <param name="SavePath">保存路径【sys.config配置路径】</param>        /// <param name="oImgWidth">图片宽度</param>        /// <param name="oImgHeight">图片高度</param>        /// <param name="cMode">剪切类型</param>        /// <param name="ext">返回格式</param>        /// <returns>返回上传信息</returns>        public ResponseMessage FileCutSaveAs(System.Web.HttpPostedFile PostedFile, string SavePath, int oImgWidth, int oImgHeight, CutMode cMode)        {            ResponseMessage rm = new ResponseMessage();            try            {                //获取上传文件的扩展名                string sEx = System.IO.Path.GetExtension(PostedFile.FileName);                if (!CheckValidExt(SetAllowFormat, sEx))                {                    TryError(rm, 2);                    return rm;                }                //获取上传文件的大小                double PostFileSize = PostedFile.ContentLength / 1024.0 / 1024.0;                if (PostFileSize > SetAllowSize)                {                    TryError(rm, 3);                    return rm;  //超过文件上传大小                }                if (!System.IO.Directory.Exists(SavePath))                {                    System.IO.Directory.CreateDirectory(SavePath);                }                //重命名名称                string NewfileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString("000");                string fName = "s" + NewfileName + sEx;                string fullPath = Path.Combine(SavePath, fName);                PostedFile.SaveAs(fullPath);                //重命名名称                string sNewfileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString("000");                string sFName = sNewfileName + sEx;                rm.IsError = false;                rm.FileName = sFName;                string sFullPath = Path.Combine(SavePath, sFName);                rm.filePath = sFullPath;                rm.WebPath = "/"+sFullPath.Replace(HttpContext.Current.Server.MapPath("~/"), "").Replace("\\", "/");                CreateSmallPhoto(fullPath, oImgWidth, oImgHeight, sFullPath, SetPicWater, SetWordWater, cMode);                if (File.Exists(fullPath))                {                    File.Delete(fullPath);                }                //压缩                if (PostFileSize > 100)                {                    CompressPhoto(sFullPath, 100);                }            }            catch (Exception ex)            {                TryError(rm, ex.Message);            }            return rm;        }        /// <summary>        /// 通用图片上传类        /// </summary>        /// <param name="PostedFile">HttpPostedFile控件</param>        /// <param name="SavePath">保存路径【sys.config配置路径】</param>        /// <param name="finame">返回文件名</param>        /// <param name="fisize">返回文件大小</param>        /// <returns>返回上传信息</returns>        public ResponseMessage FileSaveAs(System.Web.HttpPostedFile PostedFile, string SavePath)        {            ResponseMessage rm = new ResponseMessage();            try            {                if (string.IsNullOrEmpty(PostedFile.FileName))                {                    TryError(rm, 4);                    return rm;                }                Random rd = new Random();                int rdInt = rd.Next(1000, 9999);                //重命名名称                string NewfileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + rdInt;                //获取上传文件的扩展名                string sEx = System.IO.Path.GetExtension(PostedFile.FileName);                if (!CheckValidExt(SetAllowFormat, sEx))                {                    TryError(rm, 2);                    return rm;                }                //获取上传文件的大小                double PostFileSize = PostedFile.ContentLength / 1024.0 / 1024.0;