- 浏览: 147253 次
- 性别:
- 来自: 汕尾
文章分类
最新评论
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.IO;
using System.Text;
using System.Drawing;
/// <summary>
/// PictureCommand 的摘要说明
/// </summary>
public class PictureCommand
{
public PictureCommand()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private static string _MSG;
private string _ofullname = "0";
private string _tfullname = "0";
private string _ofilename = "0";
private string _tfilename = "0";
private int _limitwidth = 3072;
private int _limitheight = 2304;
private int _twidth = 100;
private int _theight = 100;
private int _size = 3000000;
private bool _israte = true;
private string _path = "UpdateImage";
/// <summary>
/// 信息
/// </summary>
public static string MSG
{
get { return _MSG; }
set { _MSG = value; }
}
/// <summary>
/// 保存时的完整路径.原图
/// </summary>
public string OFullName
{
get { return _ofullname; }
set { _ofullname = value; }
}
/// <summary>
/// 保存时的完整路径.缩略图
/// </summary>
public string TFullName
{
get { return _tfullname; }
set { _tfullname = value; }
}
/// <summary>
/// 保存时的图片名称.原图
/// </summary>
public string OFileName
{
get { return _ofilename; }
set { _ofilename = value; }
}
/// <summary>
/// 保存时的图片名称.缩略图
/// </summary>
public string TFileName
{
get { return _tfilename; }
set { _tfilename = value; }
}
/// <summary>
/// 限定宽度
/// </summary>
public int LimitWidth
{
get { return _limitwidth; }
set { _limitwidth = value; }
}
/// <summary>
/// 限定高度
/// </summary>
public int LimitHeight
{
get { return _limitheight; }
set { _limitheight = value; }
}
/// <summary>
/// 缩略图宽度
/// </summary>
public int TWidth
{
get { return _twidth; }
set { _twidth = value; }
}
/// <summary>
/// 缩略图高度
/// </summary>
public int THeight
{
get { return _theight; }
set { _theight = value; }
}
/// <summary>
/// 文件大小
/// </summary>
public int Size
{
get { return _size; }
set { _size = value; }
}
/// <summary>
/// 是否成比例
/// </summary>
public bool IsRate
{
get { return _israte; }
set { _israte = value; }
}
/// <summary>
/// 是否生成缩略图
/// </summary>
public bool IsCreate
{
get { return _israte; }
set { _israte = value; }
}
/// <summary>
/// 存放图片的文件夹名称
/// </summary>
public string Path
{
get { return _path; }
set { _path = value; }
}
/// <summary>
/// 图片上传(默认:"等比压缩,限定上传尺寸2048*1536,缩略图尺寸100*100,限定上传大小1MB,存放在根目录UpdateImage中")
/// </summary>
/// <param name="UploadFile">文件上传控件</param>
/// <returns>返回是否成功保存图片</returns>
public bool UpLoadIMG(FileUpload UploadFile)
{
if (UploadFile.HasFile)//检查是否已经选择文件
{
string filename = UploadFile.FileName.ToLower();
int i = filename.LastIndexOf(".");
filename = filename.Substring(i, filename.Length - i);
if (!(filename == ".jpg" || filename == ".jpeg" || filename == ".gif" || filename == ".png" || filename == ".bmp"))
{
MSG = "不受支持的类型,请重新选择!";
return false;
}//检查上传文件的格式是否有效
if (UploadFile.PostedFile.ContentLength == 0 || UploadFile.PostedFile.ContentLength >= Size)
{
MSG = "指定的文件大小不符合要求!";
return false;
}//检查图片文件的大小
//生成原图
Stream oStream = UploadFile.PostedFile.InputStream;
System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);
int owidth = oImage.Width; //原图宽度
int oheight = oImage.Height; //原图高度
if (owidth > LimitWidth || oheight > LimitHeight)
{
MSG = "超过允许的图片尺寸范围!";
return false;
}//检查是否超出规定尺寸
if (IsRate)
{
//按比例计算出缩略图的宽度和高度
if (owidth >= oheight)
{
THeight = (int)Math.Floor(Convert.ToDouble(oheight) * (Convert.ToDouble(TWidth) / Convert.ToDouble(owidth)));//等比设定高度
}
else
{
TWidth = (int)Math.Floor(Convert.ToDouble(owidth) * (Convert.ToDouble(THeight) / Convert.ToDouble(oheight)));//等比设定宽度
}
}
//生成缩略原图
Bitmap tImage = new Bitmap(TWidth, THeight);
Graphics g = Graphics.FromImage(tImage);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; //设置高质量插值法
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
g.Clear(Color.Transparent); //清空画布并以透明背景色填充
g.DrawImage(oImage, new Rectangle(0, 0, TWidth, THeight), new Rectangle(0, 0, owidth, oheight), GraphicsUnit.Pixel);
Random orandom = new Random();
string oStringRandom = orandom.Next(9999).ToString();//生成4位随机数字
//格式化日期作为文件名
DateTime oDateTime = new DateTime();
oDateTime = DateTime.Now;
string oStringTime = oDateTime.ToString();
oStringTime = oStringTime.Replace("-", "");
oStringTime = oStringTime.Replace(" ", "");
oStringTime = oStringTime.Replace(":", "");
OFileName = "o" + oStringTime + oStringRandom + filename;
TFileName = "t" + oStringTime + oStringRandom + filename;
string SavePath = HttpContext.Current.Server.MapPath("~") + "\\" + Path + "\\";
if (!Directory.Exists(SavePath))
{
Directory.CreateDirectory(SavePath);//在根目录下建立文件夹
}
OFullName = SavePath + OFileName;
TFullName = SavePath + TFileName;
//开始保存图片至服务器
try
{
switch (filename)
{
case ".jpeg":
case ".jpg":
{
oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
}
case ".gif":
{
oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Gif);
tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Gif);
break;
}
case ".png":
{
oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Png);
tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Png);
break;
}
case ".bmp":
{
oImage.Save(OFullName, System.Drawing.Imaging.ImageFormat.Bmp);
tImage.Save(TFullName, System.Drawing.Imaging.ImageFormat.Bmp);
break;
}
}
MSG = "图片上传成功!";
//保存路径+完整文件名
string _SavePath = "/" + Path + "/";
OFullName = _SavePath + OFileName;
TFullName = _SavePath + TFileName;
return true;
}
catch (Exception ex)
{
MSG = ex.Message;
return false;
}
finally
{
//释放资源
oImage.Dispose();
g.Dispose();
tImage.Dispose();
}
}
else
{
MSG = "请先选择需要上传的图片!";
return false;
}
}
}
调用:
只要先实例化类之后,设置想要的属性。
UpLoadIMG(this.fileupload1)
输入文件上传控件的ID作为参数就可以了。
属性:
1.原始图片完整路径
2.原始图片名称
3.缩略图完整路径
4.缩略图名称
5.限定宽度
6.限定高度
7.缩略图宽度
8.缩略图高度
9.限定大小
10.是否等比压缩
11.存放路径
12.信息输出
发表评论
-
终于能拿到私活的第一笔款了
2012-05-25 07:22 866用两周的时间全力做了一套酒店门户网站,包括后台管理网站和最 ... -
.net 隐式转换和显式转换
2012-05-11 07:15 7921.隐式转换:(String不能隐式转换为int) int ... -
解释性语言和编译性语言的区别
2012-05-10 23:02 913计算机不能直接理解高 ... -
.net身份验证机制
2012-05-10 22:47 7221.Windows 依赖于iis提供的验证方式,匿名、基本身 ... -
.net 并发控制方式
2012-05-10 22:35 11251.保守式并发控制 独占式处理,数据在完成更新完成之后才解锁 ... -
String、StringBuffer、StringBuilder的区别
2012-05-10 22:20 7531.String是字符串常量;StringBuffer、Str ... -
对主管的判断
2012-05-03 22:57 704一个个的诺言,不能实现,慢慢地让我对这个主管失去信心,4月 ... -
成熟的标志
2012-04-22 23:14 662一:沉稳(1)不要随便显露你的情绪。 没做到(2)不要逢人就诉 ... -
机会?陷阱?
2012-04-22 23:12 664主管想带我跳槽,提供比现在翻倍的工资,但却打乱了原先的计 ... -
每日总结20120415(周日)
2012-04-15 21:54 762前面的总结终于慢慢地发挥作用了,现在已经基本上了解自己的工作 ... -
每日总结20120410
2012-04-10 23:33 777今天学车,我是第一个上车了,第一次就把车踩熄火了,悲催。关 ... -
每日总结20120409
2012-04-09 22:22 690尝试了一下去见见一些老同学,发现了很多新的东西,人确实是一 ... -
每日总结20120406
2012-04-06 23:01 603今天虽然排除不了外界的干扰,但思路清晰的做事情,让我至少维 ... -
每日总结20120405
2012-04-05 22:39 720今天用做一个签核组织功能模块,分别预测自己能用15分钟做 ... -
每天一个小时听写英语
2012-04-05 20:59 929第一个目标:能一句句的听写读出听到的英文。 -
现有技能水平
2012-04-04 23:56 476.net:初级,能看懂和利用别人的框架,改改贴贴,根据需要添 ... -
不抱怨,说到做到
2012-04-04 23:31 536没出息的人只会抱怨现实或其他人其他条件对自己的不公,实现不 ... -
要在一个领域取得成就,就必须有对该领域的独特的执着
2012-04-03 23:34 990做什么事情都三分钟热度,永远都没有办法学精。对语言的感情, ... -
从来没有那么渴望顶端的风景过
2012-03-29 22:08 686平庸太无趣了,只有爬得更高才能看到更多的乐趣,体验到更多 ... -
思路一定要清晰
2012-03-26 23:21 560今天过了理论考试,把然后把项目要好好地测试了一下,发现了 ...
相关推荐
ASP.NET 图片上传下载缩略察看C#和VB双版.rar 从本地向SQL Server上传存入图片 从SQL Server下载并在网页中显示图片 同时能显示缩略图和大图 含VB.NET和C#两个版本 内含数据库文件,简单附加到SQL Server中即可 ...
在ASP.NET中,图片上传是一项常见的功能,尤其在构建交互性强...总结来说,ASP.NET图片上传涉及前端表单设计、服务器端文件处理、数据存储策略以及安全措施。理解并熟练掌握这些知识点对于开发健壮的Web应用至关重要。
在ASP.NET中实现上传图片并在页面上显示是一个常见的...综上所述,ASP.NET提供了一套完整的框架来实现图片上传、显示和信息获取的功能。通过合理的编程实践,我们可以创建一个安全、高效且用户体验良好的图片上传系统。
综上所述,ASP.NET图片预览功能的实现涉及客户端与服务器端的交互,需要掌握HTML5的File API、ASP.NET的文件上传机制以及跨浏览器的兼容性处理。通过合理的设计和实现,我们可以为用户提供一个高效且兼容性良好的...
在ASP.NET中实现图片上传并显示进度条的功能是一项常见的需求,尤其在用户上传大体积图片时,进度条能提供良好的用户体验。以下将详细介绍如何在ASP.NET中构建这样的功能。 首先,我们需要理解上传过程的基本原理。...
同时生成 原图,缩略图,水印 具备生成缩略图,水印图的开关 代码清晰易懂
ASP.NET 是一种强大的 ...总之,通过 ASP.NET 的 ASHX 处理程序和 `WebClient` 类,我们可以实现从应用服务器到图片服务器的异步图片上传功能。这种设计模式有助于优化系统性能,提高用户体验,同时也便于扩展和维护。
ASP.NET 图片上传控件是Web开发中常用的一种组件...以上就是关于ASP.NET图片上传控件的一些核心知识点,希望对你理解并实现图片上传功能有所帮助。在实际开发中,需要根据项目需求和安全性考虑,选择最适合的实现方式。
其中图片上传就是一个 所以就自己写了个Demo研究,现在总算没问题了 这个Demo希望对大家有帮助 另外需注意的是 上传文件夹(Upload)一定要在根目录 不然会报错: -- 行: 1103 ...
总结来说,ASP.NET图片上传、自动裁剪和添加水印的功能,涉及文件上传、图像处理和图形绘制等技术。通过合理利用System.Drawing库或第三方库,可以轻松实现这些功能,为Web应用提供强大的图片处理能力。
ASP.NET图片管理系统是一种基于微软的ASP.NET框架开发的用于存储、管理和展示图片的应用程序。它为企业或个人提供了一个高效、安全且用户友好的平台来上传、检索、编辑和分享图片。下面将详细介绍ASP.NET图片管理...
3. **图片预览**:在图片上传之前,系统先显示图片预览,让用户确认图片是否符合需求。这通常通过读取上传文件的二进制数据,转换为Base64编码,然后在前端使用HTML和CSS展示。在ASP.NET中,可以使用FileUpload控件...
在本文中,我们将深入探讨如何使用JavaScript(JS)与ASP.NET技术实现图片上传、预览以及支持多文件上传和上传前预览的功能。这个技术组合是现代Web应用中常见的需求,尤其是在用户交互丰富的网站和应用中。 首先,...
在ASP.NET中,批量上传图片是一项常见的功能,尤其在构建涉及用户交互的Web应用程序时,如社交媒体、电子商务网站或内容管理系统。...通过合理的编程实践和安全策略,可以实现高效、安全的批量图片上传功能。
在图片上传过程中,ASP.NET接收JavaScript发送的裁剪后图片数据,通常通过Ajax异步请求完成,这样可以在不刷新页面的情况下完成上传。服务器端可以使用ASP.NET的HTTP模块或控制器来接收和处理这些请求。收到图片数据...
总结来说,实现ASP.NET图片批量上传涉及前端的文件选择和异步发送,后端的文件接收、验证和保存,以及可能的数据库交互和安全性控制。通过合理的设计和编程,可以创建高效且安全的图片批量上传功能。在实际开发中,...
1. 图片上传:在ASP.NET中,图片上传通常涉及HTML表单中的`<input type="file">`元素,用户可以通过这个元素选择本地的图片文件。服务器端则通过HttpPostedFileBase对象来处理上传的文件。在C#中,你可以使用`...
在ASP.NET MVC框架中,将图片上传到数据库是常见的需求,尤其在构建具有用户交互功能的网站时。本文将深入探讨如何使用C#语言来实现这个功能。 首先,我们需要了解ASP.NET MVC的基本概念。ASP.NET MVC(Model-View-...
ASP.NET 图片批量上传控件是一种...综上所述,ASP.NET图片批量上传控件涉及到的技术和知识点广泛,包括前端交互、后端处理、数据库设计、安全控制等多个方面。开发者需要结合具体需求和场景,合理设计并实现这个功能。
ASP.NET是一种基于.NET Framework的服务器端编程环境,用于构建...通过分析和理解这些代码,你可以更深入地学习如何在ASP.NET中实现图片上传和水印功能。同时,也可以将这些代码作为起点,根据项目需求进行定制和扩展。