zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

NetASP输出二进制代码 实现 上传下载
2023-06-13 09:14:15 时间
复制代码代码如下:

usingSystem;
usingSystem.Collections;
usingSystem.Configuration;
usingSystem.Data;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.HtmlControls;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Data.SqlClient;
usingSystem.IO;
namespaceDelegate
{
publicpartialclassReadStream:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
///<summary>
///将上传的文件转换成二进制流保存在数据库
///</summary>
///<paramname="sender"></param>
///<paramname="e"></param>
protectedvoidButton1_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["sql"].ToString());
stringstrSql="insertintotest(timage)values(@images)";//保存二进制流的方式需参数的形式
SqlCommandcmd=newSqlCommand(strSql,conn);
conn.Open();
stringfilepath=Server.MapPath("~/");
filepath+=FileUpload1.FileName;
FileUpload1.SaveAs(filepath);
FileStreamfs=newFileStream(filepath,FileMode.Open,FileAccess.Read);//读取文件
BinaryReaderbr=newBinaryReader(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();
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection(ConfigurationManager.ConnectionStrings["sql"].ToString());
conn.Open();
stringstrSql="selecttop1timagefromtest";
SqlCommandcmd=newSqlCommand(strSql,conn);
SqlDataReaderdr=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();
}
}
}