Asp.net缩略图代码

简介: 前台页面:WebForm1.aspx 无标题页 要上传的图片 ...
前台页面:WebForm1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!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 id="Head1" runat="server">
    <title>无标题页</title>
</head>
<body>
     <form id="Form1" method="post" encType="multipart/form-data" runat="server">
            <FONT face="宋体">
                <TABLE id="Table1" style="Z-INDEX: 101; LEFT: 32px; WIDTH: 568px; POSITION: absolute; TOP: 24px; HEIGHT: 336px"
                    cellSpacing="1" cellPadding="1" width="568" border="1">
                    <TR>
                        <TD style="HEIGHT: 16px"><asp:label id="Label1" runat="server">要上传的图片</asp:label></TD>
                        <TD style="HEIGHT: 16px"><INPUT id="upImage" type="file" name="File1" runat="server"></TD>
                        <TD style="HEIGHT: 16px"><asp:button id="btnUp" runat="server" Text="上传并生成缩略图"></asp:button></TD>
                    </TR>
                    <TR>
                        <TD style="HEIGHT: 154px"><asp:label id="Label2" runat="server">原图片</asp:label></TD>
                        <TD style="HEIGHT: 154px" align="center" colSpan="2"><asp:image id="imageSource" runat="server"></asp:image></TD>
                    </TR>
                    <TR>
                        <TD><asp:label id="Label3" runat="server">缩略图</asp:label></TD>
                        <TD align="center" colSpan="2"><asp:image id="imageSmall" runat="server"></asp:image></TD>
                    </TR>
                </TABLE>
            </FONT>
        </form>
</body>
</html>


后台代码:WebForm1.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {

        //定义image类的对象
        System.Drawing.Image image, newimage;
        //图片路径
        protected string imagePath;
        //图片类型
        protected string imageType;
        //图片名称
        protected string imageName;
        //提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
        //如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false
        System.Drawing.Image.GetThumbnailImageAbort callb = null;

        private void Page_Load(object sender, System.EventArgs e)
        {
            this.btnUp.Click += new System.EventHandler(this.btnUp_Click);
            this.Load += new System.EventHandler(this.Page_Load);
            // 在此处放置用户代码以初始化页面
        }

  

        private void btnUp_Click(object sender, System.EventArgs e)
        {
            string mPath;

            if ("" != upImage.PostedFile.FileName)
            {
                imagePath = upImage.PostedFile.FileName;
                //取得图片类型
                imageType = imagePath.Substring(imagePath.LastIndexOf(".") + 1);
                //取得图片名称
                imageName = imagePath.Substring(imagePath.LastIndexOf("\\") + 1);
                //判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片
                if ("jpg" != imageType && "gif" != imageType)
                {
                    Response.Write("<script language='javascript'> alert('对不起!请您选择jpg或者gif格式的图片!');</script>");
                    return;
                }
                else
                {
                    try
                    {
                        //建立虚拟路径
                        mPath = Server.MapPath("upFile");
                        //保存到虚拟路径
                        upImage.PostedFile.SaveAs(mPath + "\\" + imageName);
                        //显示原图
                        imageSource.ImageUrl = "upFile/" + imageName;
                        //为上传的图片建立引用
                        image = System.Drawing.Image.FromFile(mPath + "\\" + imageName);
                        //生成缩略图
                        newimage = image.GetThumbnailImage(100, 100, callb, new System.IntPtr());
                        //把缩略图保存到指定的虚拟路径
                        newimage.Save(Server.MapPath("upFile") + "\\small" + imageName);
                        //释放image对象占用的资源
                        image.Dispose();
                        //释放newimage对象的资源
                        newimage.Dispose();
                        //显示缩略图
                        imageSmall.ImageUrl = "upFile/" + "small" + imageName;

                        Response.Write("上传成功!");
                    }
                    catch
                    {
                        Response.Write("上传成功!");
                    }

                }
            }

        }
    }
}
相关文章
|
7月前
|
API
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
|
3月前
|
算法 Java 测试技术
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
92 13
|
7月前
|
C# 开发者 Windows
在VB.NET项目中使用C#编写的代码
在VB.NET项目中使用C#编写的代码
92 0
|
3月前
|
开发框架 .NET PHP
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
|
4月前
|
敏捷开发 缓存 中间件
.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素
本文深入探讨了.NET技术的高效开发模式,涵盖面向对象编程、良好架构设计及高效代码编写与管理三大关键要素,并通过企业级应用和Web应用开发的实践案例,展示了如何在实际项目中应用这些模式,旨在为开发者提供有益的参考和指导。
58 3
|
5月前
|
前端开发 JavaScript C#
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
CodeMaid:一款基于.NET开发的Visual Studio代码简化和整理实用插件
127 0
|
7月前
|
Kubernetes 监控 Devops
【独家揭秘】.NET项目中的DevOps实践:从代码提交到生产部署,你不知道的那些事!
【8月更文挑战第28天】.NET 项目中的 DevOps 实践贯穿代码提交到生产部署全流程,涵盖健壮的源代码管理、GitFlow 工作流、持续集成与部署、容器化及监控日志记录。通过 Git、CI/CD 工具、Kubernetes 及日志框架的最佳实践应用,显著提升软件开发效率与质量。本文通过具体示例,助力开发者构建高效可靠的 DevOps 流程,确保项目成功交付。
129 0
|
7月前
|
XML 开发框架 .NET
.NET框架:软件开发领域的瑞士军刀,如何让初学者变身代码艺术家——从基础架构到独特优势,一篇不可错过的深度解读。
【8月更文挑战第28天】.NET框架是由微软推出的统一开发平台,支持多种编程语言,简化应用程序的开发与部署。其核心组件包括公共语言运行库(CLR)和类库(FCL)。CLR负责内存管理、线程管理和异常处理等任务,确保代码稳定运行;FCL则提供了丰富的类和接口,涵盖网络、数据访问、安全性等多个领域,提高开发效率。此外,.NET框架还支持跨语言互操作,允许开发者使用C#、VB.NET等语言编写代码并无缝集成。这一框架凭借其强大的功能和广泛的社区支持,已成为软件开发领域的重要工具,适合初学者深入学习以奠定职业生涯基础。
144 1
|
7月前
|
API
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
【Azure Key Vault】.NET 代码如何访问中国区的Key Vault中的机密信息(Get/Set Secret)
|
7月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)