|
asp.net 上传下载输出二进制流实现代码,需要的朋友可以参考下。
复制代码 代码如下: 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> /// 将上传的文件转换成二进制流保存在数据库 /// </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)";//保存二进制流的方式需参数的形式 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);//读取文件 BinaryReader br = new BinaryReader(fs); byte[] photo = br.ReadBytes((int)fs.Length); br.Close(); fs.Close(); cmd.Parameters.Add("@images", SqlDbType.Binary, photo.Length);//设置参数 cmd.Parameters["@images"].Value = photo;//设置值 if (cmd.ExecuteNonQuery() == 1) { Response.Write("添加成功!"); } 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");//设置读取的文件头 Response.AddHeader("Content-Length", by.Length.ToString()); Response.ContentType = "text/plain";//设置输出类型 这里可以保存在数据库中 动态实现类型 Response.OutputStream.Write(by, 0, by.Length); //输出 Response.Flush(); } conn.Close(); } } }
|
|