在ASP.NET中上传图片并生成缩略图的C#源码

在ASP.NET中上传图片并生成缩略图的C#源码

  1<font size="4"><font size="4"><font size="4">using System;   
  2using System.Collections;   
  3using System.ComponentModel;   
  4using System.Data;   
  5using System.Drawing;   
  6using System.Web;   
  7using System.Web.SessionState;   
  8using System.Web.UI;   
  9using System.Web.UI.WebControls;   
 10using System.Web.UI.HtmlControls;   
 11using System.IO;   
 12using System.Drawing.Imaging; 
 13
 14namespace eMeng.Exam   
 15{   
 16/// <summary>   
 17/// Thumbnail 的摘要说明。   
 18/// </summary>   
 19public class Thumbnail : System.Web.UI.Page   
 20{   
 21protected System.Web.UI.WebControls.Label Label1;   
 22protected System.Web.UI.WebControls.Button Button1; 
 23
 24private void Page_Load(object sender, System.EventArgs e)   
 25{   
 26// 在此处放置用户代码以初始化页面   
 27Label1.Text = "<h3>在ASP.NET里轻松实炙趼酝?lt;/h3&gt;";   
 28Button1.Text = "上载并显示缩略图"; 
 29
 30} 
 31
 32#region Web 窗体设计器生成的代码   
 33override protected void OnInit(EventArgs e)   
 34{   
 35//   
 36// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。   
 37//   
 38InitializeComponent();   
 39base.OnInit(e);   
 40} 
 41
 42/// <summary>   
 43/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
 44/// 此方法的内容。   
 45/// </summary>   
 46private void InitializeComponent()   
 47{   
 48this.Button1.Click += new System.EventHandler(this.Button1_Click);   
 49this.Load += new System.EventHandler(this.Page_Load); 
 50
 51}   
 52#endregion 
 53
 54private void Button1_Click(object sender, System.EventArgs e)   
 55{   
 56HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;   
 57HttpPostedFile MyPostedFile = MyFileColl[0]; 
 58
 59if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image") &lt; 0)   
 60{   
 61Response.Write("无效的图形格式。");   
 62return;   
 63}   
 64GetThumbNail(MyPostedFile.FileName, 100, 100,   
 65MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);   
 66}   
 67private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)   
 68{   
 69if ((strContentType.ToString().ToLower()) == "image/pjpeg")   
 70{   
 71return System.Drawing.Imaging.ImageFormat.Jpeg;   
 72}   
 73else if ((strContentType.ToString().ToLower()) == "image/gif")   
 74{   
 75return System.Drawing.Imaging.ImageFormat.Gif;   
 76}   
 77else if ((strContentType.ToString().ToLower()) == "image/bmp")   
 78{   
 79return System.Drawing.Imaging.ImageFormat.Bmp;   
 80}   
 81else if ((strContentType.ToString().ToLower()) == "image/tiff")   
 82{   
 83return System.Drawing.Imaging.ImageFormat.Tiff;   
 84}   
 85else if ((strContentType.ToString().ToLower()) == "image/x-icon")   
 86{   
 87return System.Drawing.Imaging.ImageFormat.Icon;   
 88}   
 89else if ((strContentType.ToString().ToLower()) == "image/x-png")   
 90{   
 91return System.Drawing.Imaging.ImageFormat.Png;   
 92}   
 93else if ((strContentType.ToString().ToLower()) == "image/x-emf")   
 94{   
 95return System.Drawing.Imaging.ImageFormat.Emf;   
 96}   
 97else if ((strContentType.ToString().ToLower()) == "image/x-exif")   
 98{   
 99return System.Drawing.Imaging.ImageFormat.Exif;   
100}   
101else if ((strContentType.ToString().ToLower()) == "image/x-wmf")   
102{   
103return System.Drawing.Imaging.ImageFormat.Wmf;   
104}   
105else   
106{   
107return System.Drawing.Imaging.ImageFormat.MemoryBmp;   
108}   
109} 
110
111private void GetThumbNail(string strFileName, int iWidth, int iheight,   
112string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)   
113{   
114System.Drawing.Image oImg; 
115
116if (blnGetFromFile)   
117{   
118oImg = System.Drawing.Image.FromFile(strFileName);   
119}   
120else   
121{   
122oImg = System.Drawing.Image.FromStream(ImgStream);   
123}   
124oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);   
125string strGuid = System.Guid.NewGuid().ToString().ToUpper();   
126string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));   
127Response.ContentType = strContentType;   
128MemoryStream MemStream = new MemoryStream();   
129oImg.Save(MemStream, GetImageType(strContentType));   
130MemStream.WriteTo(Response.OutputStream);   
131} 
132
133}   
134}   
135</h3></font></font></font>
1<font color="#ff0000" size="4"></font>
 1<font size="4">功能:   
 21。把图片文件(JPG GIF PNG)上传,   
 32。保存到指定的路径(在web.config中设置路径,以文件的原有格式保存),   
 43。并自动生成指定宽度的(在web.config中设置宽度)   
 54。和指定格式的(在web.config中指定缩略图的格式)   
 65。和原图比例相同的缩略图(根据宽度和原图的宽和高计算所略图的高度)   
 76。可以判断是否已经存在文件   
 87。如果不覆盖,则给出错误   
 98。如果选中"覆盖原图"checkbox,则覆盖原图。   
109。可以根据要求,在webform上设置1个以上的file input和相应的checkbox   
1110。并在文件上传完毕后,显示原图的文件名,尺寸,字节,和   
1211。缩略图的文件名尺寸。   
1312。缩略图的文件名格式:原图+"_thumb."+指定格式,如:test.jpg_thumb.gif,以便于管理。 
14
15本新闻共  2  页,当前在第  1  页  1  2</font>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus