从数据库中读出来的图片显示不了
Response.ClearContent();Response.ContentType = "image/jpeg";
Response.BinaryWrite((byte[]数据库中的blob);
但是页面上显示的是“System.Byte[]“,问题出在哪了? --------------------编程问答-------------------- 你怎么显示的呢 --------------------编程问答-------------------- 编码格式的问题吧
--------------------编程问答-------------------- 直接这样输出 不可以吧~~~ --------------------编程问答-------------------- 就是想读取出显示在一个image控件中
--------------------编程问答-------------------- 我一般都是右键属性看看路径错误的图片。
在右键属性看看同级别正确图片的路径。
1.对比下路径错误
2.如果页面有输出图片地址,请仔细核对第一条。(你单纯的输出一下图片地址看看再说) --------------------编程问答-------------------- 那样没有问题,可是现在从数据库里读出的二进制数组形式,怎么显示在image控件中呢
--------------------编程问答-------------------- 大虾都哪去了,赶快现身吧!
--------------------编程问答-------------------- 数据库中存的是路径还是二进制文件? --------------------编程问答-------------------- 你的数据库里可能存错了东西...存放的是"System.Byte[]",而不是图像 --------------------编程问答-------------------- 楼主还是先确定图片存没存到数据库里了,我和9楼的想法一样 --------------------编程问答-------------------- 是不是路径在读取的时候写的有问题? --------------------编程问答-------------------- 二进制方法,图片已经存入数据库了,图片存放的时候把图片变成二进制数组放入,读出来后再转化成图片的,这些都没有问题
--------------------编程问答-------------------- 等待的大侠,快快现身吧,有没有做过这方面的朋友啊 --------------------编程问答-------------------- 你把读取图片的ashx页面代码贴出来看看 --------------------编程问答--------------------
这事用得着麻烦大侠么?给你一段现成的代码,自己对照着找找问题在哪
public void ProcessRequest(HttpContext context)--------------------编程问答-------------------- 15楼谢谢。但咱们的代码本质是一样的啊。 --------------------编程问答--------------------
{
string strID = context.Request.QueryString["ProductID"];
if (strID == string.Empty)
return;
string strConn = WebConfigurationManager.ConnectionStrings["StickerStick"].ToString();
SqlConnection conn = new SqlConnection(strConn);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = "select top 1 Picture from Pictures where ProductID=@ProductID";
comm.Parameters.Add(new SqlParameter("@ProductID", strID));
int nRead = 0;
int nFrom = 0;
byte[] buffer = new byte[2048];
try
{
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
reader.Read();
do
{
nRead = (int)reader.GetBytes(0, nFrom, buffer, 0, 2048);
nFrom += nRead;
context.Response.BinaryWrite(buffer);
} while (nRead == 2048);
reader.Close();
}
finally
{
conn.Close();
}
}
是啊,这功能总共就几十行代码,大家写出来的都差不多。你不把你的代码贴出来没人知道毛病出在哪,一开始贴的那三行没有任何意义,所以我只能说你自己对照着找问题 --------------------编程问答-------------------- 需要加入一个辅助页面
public partial class Picture : System.Web.UI.Page
{
...... Response.BinaryWrite(....);
}
//
Image.ImageUrl=”Picture.aspx”; --------------------编程问答-------------------- [yabao=][/yabao] --------------------编程问答-------------------- MemoryStream memoryStream = new MemoryStream();
memoryStream.Read(byte[]数据库中的blob,0,blob.length);
-------------------------------------------------------------------------
MemoryStream memoryStream = new MemoryStream(Binary);//定义并实例化一个内存流,来存放上传的图片二进制流
FileStream fileStreams = new FileStream(FileName, FileMode.Create); //把内存里的文件写入文件流
memoryStream.WriteTo(fileStreams);
memoryStream.Close();
fileStreams.Close();
Binary = null;
memoryStream = null;
--------------------编程问答--------------------
MemoryStream memoryStream = new MemoryStream();
memoryStream.Read(byte[]数据库中的blob,0,blob.length); 读取图片内容到内存
System.Drawing.Image bitmap = new System.Drawing.Bitmap(memoryStream ,true); 生成一张图片
--------------------编程问答-------------------- 看下路径?看下源码里面路径对么 --------------------编程问答-------------------- 页面的写法:
<img src="xx.ashx" />
页面也要用img标签显示 --------------------编程问答-------------------- 页面的写法:
<img src="xx.ashx" />
页面也要用img标签显示 --------------------编程问答--------------------
存如数据库
if (this.fileCoverImage.HasFile)
{
info.Photo = this.fileCoverImage.FileBytes;
}
显示
<td rowspan="5">
<asp:Image ID="myImg" ImageUrl= "PictureShow.ashx?EmployeeId=id(id是多少。。。)" Width="150" Height="150" runat="server" />
</td>
ashx
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/gif";
int employeedid = DataTypeHelper.GetInt(context.Request.QueryString["EmployeeId"]);
using (ErpEntities db = new ErpEntities())
{
Employee info = db.Employees.FirstOrDefault(o => o.EmployeeId == employeedid);
if (info != null && info.Photo !=null)
{
context.Response.BinaryWrite(info.Photo);
}
}
}
补充:.NET技术 , ASP.NET