FileUpload 그림을 업로드하기 전에 그림 미리 보기 기능(애니메이션 첨부)

4931 단어
효과 보기:
 
프로젝트에서 aspx 페이지를 만들고 FileUpload 컨트롤을 끌어다 놓으면 업로드할 때의 그림을 미리 볼 수 있습니다.
 
  
View Code




<br/> <br/> <br/><form id="form1" runat="server"> <br/><div> <br/><table> <br/><tr> <br/><td style="vertical-align: top; width: 10%;"> <br/><fieldset> <br/><legend> </legend> <br/><fileupload id="FileUpload1" runat="server"/> <br/></fieldset> <br/></td> <br/><td style="vertical-align: top; width: 90%;"> <br/><fieldset> <br/><legend> </legend> <br/><image id="Image1" runat="server" visible="false"/> <br/></fieldset> <br/></td> <br/></tr> <br/></table> <br/></div> <br/></form> <br/> <br/> <br/> </code></pre> <br/> Page_Init , FileUpload , onchange 。 <br/> <pre><code> <br/>protected void Page_Init(object sender, EventArgs e) <br/>{ <br/>this.FileUpload1.Attributes.Add("onchange", Page.ClientScript.GetPostBackEventReference(this.FileUpload1, "onchange")); <br/>} <br/> </code></pre> <br/> ,Insus.NET axd , ImageProcessFactory.cs , IHttpHandler 。 <br/> <pre><code> <br/>ImageProcessFactory.cs <br/>using System; <br/>using System.Collections.Generic; <br/>using System.Drawing; <br/>using System.Drawing.Drawing2D; <br/>using System.Drawing.Imaging; <br/>using System.IO; <br/>using System.Linq; <br/>using System.Web; <br/>using System.Web.SessionState; <br/>/// <summary> <br/>/// Summary description for ImageProcessFactory <br/>/// </summary> <br/>namespace Insus.NET <br/>{ <br/>public class ImageProcessFactory : IHttpHandler,IRequiresSessionState <br/>{ <br/>public ImageProcessFactory() <br/>{ <br/>// <br/>// TODO: Add constructor logic here <br/>// <br/>} <br/>public void ProcessRequest(HttpContext context) <br/>{ <br/>//Checking whether the UploadBytes session variable have anything else not doing anything <br/>if ((context.Session["UploadBytes"]) != null) <br/>{ <br/>byte[] buffer = (byte[])(context.Session["UploadBytes"]); <br/>context.Response.BinaryWrite(buffer); <br/>} <br/>} <br/>public bool IsReusable <br/>{ <br/>get <br/>{ <br/>return false; <br/>} <br/>} <br/>} <br/>} <br/> </code></pre> <br/> axd , Web.Config 。 <br/> <pre><code> <br/>View Code <br/><configuration> <br/><system.web> <br/><httphandlers> <br/><add verb="*" path="PreviewImage.axd" type="Insus.NET.ImageProcessFactory"/> <br/></httphandlers> <br/></system.web> <br/></configuration> <br/> </code></pre> <br/>Ok, aspx.cs , page_Load , FileUpload : <br/> <pre><code> <br/>View Code <br/>protected void Page_Load(object sender, EventArgs e) <br/>{ <br/>if (IsPostBack) <br/>{ <br/>var ctrl = Request.Params[Page.postEventSourceID]; <br/>var args = Request.Params[Page.postEventArgumentID]; <br/>OnchangeHandle(ctrl, args); <br/>} <br/>} <br/> </code></pre> <br/> Page_Load OnchangeHandle(xxx,xxx): <br/> <pre><code> <br/>View Code <br/>private void OnchangeHandle(string ctrl, string args) <br/>{ <br/>if (ctrl == this.FileUpload1.UniqueID && args == "onchange") <br/>{ <br/>this.Image1.Visible = true; <br/>Session["UploadBytes"] = this.FileUpload1.FileBytes; <br/>this.Image1.ImageUrl = "~/PreviewImage.axd" ; <br/>} <br/>} <br/> </code></pre> <div class="clearfix"> <span id="art_bot" class="jbTestPos"/> </div> </div> </div> </div>

좋은 웹페이지 즐겨찾기