手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >FileUpload上传图片前实现图片预览功能(附演示动画)
FileUpload上传图片前实现图片预览功能(附演示动画)
摘要:看看效果:在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片。复制代码代码如下:ViewCode...

看看效果:

1

在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片。

复制代码 代码如下:

View Code

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

</head>

<body>

<form id="form1" runat="server">

<div>

<table>

<tr>

<td>

<fieldset>

<legend>选择图片</legend>

<asp:FileUpload ID="FileUpload1" runat="server" />

</fieldset>

</td>

<td>

<fieldset>

<legend>预览</legend>

<asp:Image ID="Image1" runat="server" Visible="false" />

</fieldset>

</td>

</tr>

</table>

</div>

</form>

</body>

</html>

在Page_Init事件中,为FileUpload控件,注册onchange客户端事件。

复制代码 代码如下:

protected void Page_Init(object sender, EventArgs e)

{

this.FileUpload1.Attributes.Add("onchange", Page.ClientScript.GetPostBackEventReference(this.FileUpload1, "onchange"));

}

接下来,Insus.NET一个axd处理文档,其实ImageProcessFactory.cs只是一个普能的类别,只实作了IHttpHandler接口。

复制代码 代码如下:

ImageProcessFactory.cs

using System;

using System.Collections.Generic;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

using System.IO;

using System.Linq;

using System.Web;

using System.Web.SessionState;

/// <summary>

/// Summary description for ImageProcessFactory

/// </summary>

namespace Insus.NET

{

public class ImageProcessFactory : IHttpHandler,IRequiresSessionState

{

public ImageProcessFactory()

{

//

// TODO: Add constructor logic here

//

}

public void ProcessRequest(HttpContext context)

{

//Checking whether the UploadBytes session variable have anything else not doing anything

if ((context.Session["UploadBytes"]) != null)

{

byte[] buffer = (byte[])(context.Session["UploadBytes"]);

context.Response.BinaryWrite(buffer);

}

}

public bool IsReusable

{

get

{

return false;

}

}

}

}

为能能应到axd文档,需要在Web.Config中配置一下。

复制代码 代码如下:

View Code

<configuration>

<system.web>

<httpHandlers>

<add verb="*" path="PreviewImage.axd" type="Insus.NET.ImageProcessFactory"/>

</httpHandlers>

</system.web>

</configuration>

Ok,我们回到aspx.cs页面中,要在page_Load中,怎监控FileUpload控件是否有值变化:

复制代码 代码如下:

View Code

protected void Page_Load(object sender, EventArgs e)

{

if (IsPostBack)

{

var ctrl = Request.Params[Page.postEventSourceID];

var args = Request.Params[Page.postEventArgumentID];

OnchangeHandle(ctrl, args);

}

}

在Page_Load中有一个方法OnchangeHandle(xxx,xxx):

复制代码 代码如下:

View Code

private void OnchangeHandle(string ctrl, string args)

{

if (ctrl == this.FileUpload1.UniqueID && args == "onchange")

{

this.Image1.Visible = true;

Session["UploadBytes"] = this.FileUpload1.FileBytes;

this.Image1.ImageUrl = "~/PreviewImage.axd" ;

}

}

【FileUpload上传图片前实现图片预览功能(附演示动画)】相关文章:

Asp.Net文本换行

.dll 文件反编译的工具软件集合

如何获取DataRow[]的值

ASP.Net 图片存入数据库的实现代码

html+ashx 表单提交示例

ASP.Net 上传图片并生成高清晰缩略图

VC++根据explorer.exe进程检测用户是否已登录

涉及网络编程时,需要用到的几个常用方法

Repeater控件与PagedDataSource结合实现分页功能

读取TXT文件内容的方法

精品推荐
分类导航