我因为方便,将图片后缀改成txt,将生成的文档内的代码以为本的形式保存到sql数据库中,但是当我使用的时候怎么将它调出来呢?就是调出来后还是图片的格式?我用的是asp.net(c#)以前在asp的时候可以实现,在a.asp文件内用代码<%response.write "<img src='viewimages.asp?id="&rs("id")&"' width='32' height='32'>"%> viewimages.asp内容为:
<!--#include file="db1.asp"-->
<%
dim rs
id=request("id")
set rs=server.createobject("ADODB.recordset")
sql="select * from people where id="&id&""
rs.open sql,db,1,1
'Response.ContentType = "text/html" '显示图片的格式也可以用
'Response.ContentType = "image/gif" 以gif显示
Response.ContentType = "image/jpg" '以jpg显示
Response.BinaryWrite rs("photo") '显示图片
rs.close
db.close
set rs=nothing
set db=nothing
%>
db1.asp内容为:
<%
dim db,sql
set db=Server.CreateObject("ADODB.connection")
db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &Server.MapPath("../database/person.mdb")
sub Closedb()
db.close
set db=nothing
end sub
%>
那再asp.net怎么实现啊?
<!--#include file="db1.asp"-->
<%
dim rs
id=request("id")
set rs=server.createobject("ADODB.recordset")
sql="select * from people where id="&id&""
rs.open sql,db,1,1
'Response.ContentType = "text/html" '显示图片的格式也可以用
'Response.ContentType = "image/gif" 以gif显示
Response.ContentType = "image/jpg" '以jpg显示
Response.BinaryWrite rs("photo") '显示图片
rs.close
db.close
set rs=nothing
set db=nothing
%>
db1.asp内容为:
<%
dim db,sql
set db=Server.CreateObject("ADODB.connection")
db.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &Server.MapPath("../database/person.mdb")
sub Closedb()
db.close
set db=nothing
end sub
%>
那再asp.net怎么实现啊?
http://hi.baidu.com/zck98530/blog/item/320cff03a5ff7a8cd53f7cd4.html
{ string sql = "SELECT Image FROM table Where Id = " + id + "";
SqlCommand command = null;
SqlConnection con = null;
SqlDataReader reader = null;
Image myImage = null;
FileStream myStream = null;
try
{
//从配置文件里取连接字符串
con = new SqlConnection(Properties.Settings.Default.strConnection);
con.Open();
command = new SqlCommand(sql, con);
reader = command.ExecuteReader(); if (reader.Read())
{
FileInfo file = new FileInfo("temp.jpg");
myStream = file.Open(FileMode.Create);
byte[] mydata = new byte[(Convert.ToInt32(reader.GetBytes(0,0,null,0,Int32.MaxValue)))];
if (mydata.Length == 0) return null;
reader.GetBytes(0, 0, mydata, 0, mydata.Length);
myStream.Write(mydata, 0, mydata.Length);
myImage = Image.FromStream(myStream);
}
return myImage;
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace);
return null;
}
finally
{
if (null != myStream)
myStream.Close();
if (null != reader)
reader.Close();
if (null != con)
con.Close();
if (null != command)
command.Dispose();
} }
我想在前台使用img控件读取出来 可以么?把二进制数据读出来,用流来写成文件。是什么意思啊~~~