当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net 上传下载输出二进制流实现代码

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

2017年12月12日  | 移动技术网IT编程  | 我要评论
复制代码 代码如下:using system; using system.collections; using system.configuration; using sy
复制代码 代码如下:

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();
}
}
}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网