asp.net upload download output binary stream implementation code

  • 2020-05-07 19:28:15
  • OfStack


using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Data.SqlClient; 
using System.IO; 
namespace Delegate 
{ 
public partial class ReadStream : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
} 
/// <summary> 
///  Convert the uploaded file to 2 The base stream is saved in the database  
/// </summary> 
/// <param name="sender"></param> 
/// <param name="e"></param> 
protected void Button1_Click(object sender, EventArgs e) 
{ 
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sql"].ToString()); 
string strSql="insert into test(timage)values(@images)";// save 2 The mode of base stream requires the form of parameters  
SqlCommand cmd = new SqlCommand(strSql, conn); 
conn.Open(); 
string filepath = Server.MapPath("~/"); 
filepath += FileUpload1.FileName; 
FileUpload1.SaveAs(filepath); 
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);// Read the file  
BinaryReader br = new BinaryReader(fs); 
byte[] photo = br.ReadBytes((int)fs.Length); 
br.Close(); 
fs.Close(); 
cmd.Parameters.Add("@images", SqlDbType.Binary, photo.Length);// Set the parameters  
cmd.Parameters["@images"].Value = photo;// Set the value  
if (cmd.ExecuteNonQuery() == 1) 
{ 
Response.Write(" Add success! "); 
} 
conn.Close(); 
} 
protected void Button2_Click(object sender, EventArgs e) 
{ 
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sql"].ToString()); 
conn.Open(); 
string strSql = "select top 1 timage from test"; 
SqlCommand cmd = new SqlCommand(strSql, conn); 
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
if (dr.Read()) 
{ 
byte[] by = (byte[])dr[0]; 
Response.AddHeader("Content-Disposition", "attachment; filename=ceshi.txt");// Sets the file header to be read  
Response.AddHeader("Content-Length", by.Length.ToString()); 
Response.ContentType = "text/plain";// Set output type   Here you can save it in the database   Dynamic implementation type  
Response.OutputStream.Write(by, 0, by.Length); // The output  
Response.Flush(); 
} 
conn.Close(); 
} 
} 
}

Related articles: