APS.NET上传图使之缩小

html文件

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Thumbnail.aspx.cs" Inherits="Thumbnail" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>在ASP.NET里轻松实现缩略图</title>
    <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
    <meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
  </HEAD>
  <body MS_POSITIONING="GridLayout">
      &nbsp;<form id="Form1" method="post" runat="server" enctype="multipart/form-data">
      <INPUT type="file" name="file" width="600"><br>
          <asp:Button ID="Button1" runat="server" Text="Button" /><br>
          &nbsp;<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </form>
  </body>

</html>
 

cs文件:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Drawing.Imaging;

public partial class Thumbnail : System.Web.UI.Page
{


    private void Page_Load(object sender, System.EventArgs e)
    {
        // 在此处放置用户代码以初始化页面
        Label1.Text = "<h3>在ASP.NET里轻松实现缩略图</h3>";
        Button1.Text = "上载并显示缩略图";

    }

    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
        //
        // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
        //
        InitializeComponent();
        base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
        this.Button1.Click += new System.EventHandler(this.Button1_Click);
        this.Load += new System.EventHandler(this.Page_Load);

    }
    #endregion

    private void Button1_Click(object sender, System.EventArgs e)
    {
        HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;
        HttpPostedFile MyPostedFile = MyFileColl[0];

        if (MyPostedFile.ContentType.ToString().ToLower().IndexOf("image") < 0)
        {
            Response.Write("无效的图形格式。");
            return;
        }
        GetThumbNail(MyPostedFile.FileName, 100, 100, MyPostedFile.ContentType.ToString(), false, MyPostedFile.InputStream);
    }
    private System.Drawing.Imaging.ImageFormat GetImageType(object strContentType)
    {
        if ((strContentType.ToString().ToLower()) == "image/pjpeg")
        {
            return System.Drawing.Imaging.ImageFormat.Jpeg;
        }
        else if ((strContentType.ToString().ToLower()) == "image/gif")
        {
            return System.Drawing.Imaging.ImageFormat.Gif;
        }
        else if ((strContentType.ToString().ToLower()) == "image/bmp")
        {
            return System.Drawing.Imaging.ImageFormat.Bmp;
        }
        else if ((strContentType.ToString().ToLower()) == "image/tiff")
        {
            return System.Drawing.Imaging.ImageFormat.Tiff;
        }
        else if ((strContentType.ToString().ToLower()) == "image/x-icon")
        {
            return System.Drawing.Imaging.ImageFormat.Icon;
        }
        else if ((strContentType.ToString().ToLower()) == "image/x-png")
        {
            return System.Drawing.Imaging.ImageFormat.Png;
        }
        else if ((strContentType.ToString().ToLower()) == "image/x-emf")
        {
            return System.Drawing.Imaging.ImageFormat.Emf;
        }
        else if ((strContentType.ToString().ToLower()) == "image/x-exif")
        {
            return System.Drawing.Imaging.ImageFormat.Exif;
        }
        else if ((strContentType.ToString().ToLower()) == "image/x-wmf")
        {
            return System.Drawing.Imaging.ImageFormat.Wmf;
        }
        else
        {
            return System.Drawing.Imaging.ImageFormat.MemoryBmp;
        }
    }

    private void GetThumbNail(string strFileName, int iWidth, int iheight,string strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
    {
        System.Drawing.Image oImg;

        if (blnGetFromFile)
        {
            oImg = System.Drawing.Image.FromFile(strFileName);
        }
        else
        {
            oImg = System.Drawing.Image.FromStream(ImgStream);
        }
        oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
        string strGuid = System.Guid.NewGuid().ToString().ToUpper();
        string strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));

        //保存到本地
        string charS = "//";
        oImg.Save(Server.MapPath("uploadImg") +charS+ strGuid + strFileExt, GetImageType(strContentType));
        //直接输出URL
        Response.Redirect("uploadImg/" + strGuid+strFileExt);
        //以下显示在屏幕上
        Response.ContentType = strContentType;
        MemoryStream MemStream = new MemoryStream();
        //注意:这里如果直接用 oImg.Save(Response.OutputStream, GetImageType(strContentType))
        //对不同的格式可能会出错,比如Png格式。
        oImg.Save(MemStream, GetImageType(strContentType));
        MemStream.WriteTo(Response.OutputStream);
    }

 

 

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET代码生成器是一种工具或软件,可以帮助开发人员自动生成ASP.NET应用程序的代码。它可以根据用户提供的需求和输入,快速生成所需的代码,减少手工编写代码的工作量和时间。 ASP.NET代码生成器具有以下几个特点和优势: 1. 提高开发效率:ASP.NET代码生成器可以根据用户的需求自动生成标准化和规范化的代码。开发人员无需从头开始编写每一行代码,只需提供一些必要的参数和设置,即可自动生成所需的代码。这极大地提高了开发效率,节省了宝贵的时间和精力。 2. 降低出错概率:手动编写代码时容易出现疏忽和错误,而ASP.NET代码生成器可以根据预定义的模板和规则生成代码,减少了人为因素导致的错误。这有助于提高代码的质量和可靠性。 3. 可定制性:ASP.NET代码生成器通常提供多种可定制的选项和设置,以满足不同项目和需求的要求。开发人员可以根据自己的需要选择生成特定组件、模块或功能的代码。这种灵活性使得代码生成器成为适用于各种不同场景和项目的工具。 4. 学习和培训的便利性:对于新手开发人员或刚开始接触ASP.NET的人来说,代码生成器可以作为学习和培训的辅助工具。它可以帮助他们理解和熟悉ASP.NET的开发流程和结构,减少他们在编写代码时的困惑和迷茫。 5. 跨平台和跨框架支持:现在的ASP.NET代码生成器往往支持多个平台和框架,如ASP.NET Core、ASP.NET MVC等。这意味着开发人员可以在不同的环境和项目中使用同一个代码生成器,进一步提高了开发的一致性和效率。 总之,ASP.NET代码生成器是一个有助于提高开发效率、降低出错概率、提供定制性、便于学习和支持跨平台的工具。它为开发人员提供了一个快速生成ASP.NET代码的解决方案,促进了Web应用程序的开发和部署过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值