注册 登录
编程论坛 ASP.NET技术论坛

[求助]图片显示

zd123456 发布于 2007-07-19 15:52, 460 次点击
把图片上传 上去 又怎么把他显示在 Image1 中 或者 显示在 GridView1中了

给点 思路 或者 代码 先谢谢了
5 回复
#2
jyoseyi2007-07-19 16:04

新件个摸版列来显示图片,拖个Image在摸版中,取出图片地址,然后把把相应的图片地址传给Image

#3
zd1234562007-07-19 16:07
已做
#4
冰彩虹2007-07-19 16:17

以二进制保存到数据库
Stream sr = File1.PostedFile.InputStream;
byte[] buffer = new byte[size];
sr.Read(buffer, 0, size);
cmd.Parameters.Add("@image", SqlDbType.Image);
cmd.Parameters["@image"].Value = buffer;
...
GridView模版列中
<asp:Image ID="Image2" AlternateText=<%# Eval("ID") %> ImageUrl='<%# "~/OK/showimage.aspx?id="+Eval("ID") %>' runat="server"/>
(页面showimage.aspx显示图片)
protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["ID"];
string conStr = "Database=FILE;Server=.;Integrated Security=SSPI;";
if (id != null && id != "")
{
try
{
SqlConnection con = new SqlConnection(conStr);
con.Open();
SqlCommand cmd = new SqlCommand("select * from Image where ID=@ID", con);
cmd.Parameters.Add(new SqlParameter("@ID", id));
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
Response.ContentType = "Image/Jpeg";
Response.AddHeader("Content-Dispositon", "attachment;filename=" + dr["name"].ToString());
Response.AddHeader("Content-Length", dr["size"].ToString());
int size=Convert.ToInt32( dr["size"]);
byte[] buffer=new byte[size];
dr.GetBytes(4,0,buffer,0,size);
Response.BinaryWrite(buffer);
con.Close();
}
catch (Exception ex)
{
throw ex;
}
}
}

#5
zd1234562007-07-19 16:57
谢谢 jyoseyi 冰彩虹了

[此贴子已经被作者于2007-7-19 16:59:24编辑过]


#6
管家2007-07-19 23:46
这种太复杂 了 买不起服务空间
直接绑定图片上传的路劲 就OK了
1