asp.net UpdatePanel implementation no refresh upload pictures

  • 2020-05-07 19:32:51
  • OfStack

1) front desk
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!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></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
</asp:ScriptManager> 
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 
<asp:FileUpload ID="File1" runat="server" Width="200px" /> 
</ContentTemplate> 
<Triggers> 
<asp:PostBackTrigger ControlID="Button1" /> 
</Triggers> 
</asp:UpdatePanel> 
<asp:Image id="image1" ImageUrl="http://images.cnblogs.com/nopic.gif" Height="115px" Width="108px" runat="server"/> 
</div> 
</form> 
</body> 
</html> 

2) background
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.IO; 
using System.Data.SqlClient; 
using System.Data; 
public partial class _Default:baseClass 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
} 
protected void Button1_Click(object sender, EventArgs e) 
{ 
HttpPostedFile upFile = File1.PostedFile; 
int iFileLength = upFile.ContentLength; 
try 
{ 
if (iFileLength == 0) 
{ 
MessageBox(" Please select the file to upload! "); 
} 
else 
{ 
Byte[] FileByteArray = new Byte[iFileLength]; 
Stream StreamObject = upFile.InputStream; 
StreamObject.Read(FileByteArray, 0, iFileLength); 
SqlConnection conn = new SqlConnection("server=.;database=Test;uid=sa;pwd=1234;"); 
ExecuteBySQLNonQuery("delete from imageTable"); 
SqlCommand cmd = new SqlCommand("insert into [imageTable] values(@image)", conn); 
cmd.Parameters.Add("@Image", SqlDbType.Binary, iFileLength).Value = FileByteArray; 
conn.Open(); 
cmd.ExecuteNonQuery(); 
conn.Close(); 
MessageBox(" The photo has been uploaded successfully !"); 
} 
image1.ImageUrl = "displayempphoto.ashx"; 
} 
catch (Exception ex) 
{ 
MessageBox(ex.Message); 
} 
} 
} 

3) create 1 general processing file displayempphoto.ashx
 
<%@ WebHandler Language="C#" Class="DisplayEmpPhoto" %> 
using System; 
using System.Web; 
using System.Data.SqlClient; 
using System.Web.Configuration; 
using System.Data; 
public class DisplayEmpPhoto : IHttpHandler 
{ 
public void ProcessRequest(HttpContext context) 
{ 
using (SqlConnection cn = new SqlConnection(WebConfigurationManager.ConnectionStrings["CONNECTIONSQL"].ConnectionString)) 
{ 
SqlCommand SQLCmd = cn.CreateCommand(); 
SQLCmd.CommandText = "SELECT imagedata FROM imageTable"; 
cn.Open(); 
using (SqlDataReader dr = SQLCmd.ExecuteReader(CommandBehavior.SingleRow)) 
{ 
if (dr.Read()) 
{ 
//  change  HTTP  The output format of the file header to let the browser know that the output file format is  JPEG  Figure file.  
context.Response.ContentType = "Image/JPEG"; 
context.Response.Clear(); 
context.Response.BufferOutput = true; 
context.Response.BinaryWrite(dr.GetSqlBytes(0).Value); 
} 
} 
} 
} 
public bool IsReusable 
{ 
get 
{ 
return false; 
} 
} 
} 

Related articles: