服务器之家

服务器之家 > 正文

asp.net 上传下载输出二进制流实现代码

时间:2019-06-29 16:09     来源/作者: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(); 


}

相关文章

热门资讯

抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍
叠猫猫队长可以退出吗 叠猫猫队长怎么换队伍 2019-06-05
淘宝合合卡可以送好友吗 淘宝合合卡快速获得方式
淘宝合合卡可以送好友吗 淘宝合合卡快速获得方式 2019-06-13
叠猫猫可以邀请多少人 叠猫猫大挑战一个队最多多少人
叠猫猫可以邀请多少人 叠猫猫大挑战一个队最多多少人 2019-06-05
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部