数据库中的图片无法显示

tlw_02 2008-12-07 02:51:33
连接的是同一个数据库 为什么调试的时候可以显示数据库中存储的图片 而在网上访问的时候显示不出图片呢?图片显示为一个红色的叉。在调试的时候是可以访问到数据库的。
...全文
333 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿彪兄 2008-12-09
  • 打赏
  • 举报
回复
可能是路径问题,相对路径和绝对路径
tlw_02 2008-12-08
  • 打赏
  • 举报
回复
我再说明一下问题,数据库放在远程的数据库服务器上,里面存储有图片的二进制数据,我用handlerashx动态的显示数据库中的图片,代码在本地运行时图片可以显示,代码在空间服务器上运行时显示的图片是个叉,应该是浏览器没有加载图片,就是说没有生成图片,应该不是数据库的问题,因为无论在本地还是空间服务器上运行都可以访问数据库,我实在想不出问题出在哪?大虾们帮帮忙啊!
tlw_02 2008-12-08
  • 打赏
  • 举报
回复
继续发,直到问题解决为止。
tlw_02 2008-12-08
  • 打赏
  • 举报
回复
不能沉啊,问题还没有解决呢,大家帮我想一想啊!
tlw_02 2008-12-07
  • 打赏
  • 举报
回复
这段是从数据库输出二进制数据流的代码,大家参考一下,为什么会产生在本地和在网上访问的差异呢?
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.IO;
using System.Web;

public class Handler : IHttpHandler {

public bool IsReusable {
get {
return true;
}
}

public void ProcessRequest (HttpContext context) {
// 设置响应设置
context.Response.ContentType = "image/jpeg";
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.BufferOutput = false;
// 设置 Size 参数
PhotoSize size;
switch (context.Request.QueryString["Size"]) {
case "S":
size = PhotoSize.Small;
break;
case "M":
size = PhotoSize.Medium;
break;
case "L":
size = PhotoSize.Large;
break;
default:
size = PhotoSize.Original;
break;
}
// 设置 PhotoID 参数
Int32 id = -1;
Stream stream = null;
if (context.Request.QueryString["PhotoID"] != null && context.Request.QueryString["PhotoID"] != "") {
id = Convert.ToInt32(context.Request.QueryString["PhotoID"]);
stream = PhotoManager.GetPhoto(id, size);
} else {
id = Convert.ToInt32(context.Request.QueryString["AlbumID"]);
stream = PhotoManager.GetFirstPhoto(id, size);
}
// 从数据库获取照片,如果未返回照片,将获取默认的“placeholder”照片
if (stream == null) stream = PhotoManager.GetPhoto(size);
// 将图像流写入响应流中
const int buffersize = 1024 * 16;
byte[] buffer = new byte[buffersize];
int count = stream.Read(buffer, 0, buffersize);
while (count > 0) {
context.Response.OutputStream.Write(buffer, 0, count);
count = stream.Read(buffer, 0, buffersize);
}
}

}
tlw_02 2008-12-07
  • 打赏
  • 举报
回复
现在晕的不得了,不知道究竟是什么问题。都是连接同一个空间提供的数据库,数据库中存储二进制图片,在本地运行时可以显示出图片,传到空间,通过域名在网上访问就不能显示,数据库,代码,配置都是一样的,没理由在本机和空间就不同啊?想不通。
希望热心人关注一下,帮我想想究竟是哪的问题?
MAOGE1987 2008-12-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
在图片上点右键,看看图片地址是否正确
[/Quote]
顶下
mengxj85 2008-12-07
  • 打赏
  • 举报
回复
多是路径问题,还有可能跟网速有关,如果网速慢的话也会看不见
koukoujiayi 2008-12-07
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tlw_02 的回复:]
我查看无法显示的图片的链接属性 里面的图片地址是http://mywork.he.cn/Handler.ashx?PhotoID=6&Size=L
http://mywork.he.cn/是我空间的根目录handler就在根目录下,应该是正确的路径吧。
[/Quote]
楼主可这样调试,在浏览器中输入http://mywork.he.cn/Handler.ashx
看看是不是能够找到这个文件,如果没有404报错的话路径应该是没问题,
那么就是参数的问题了!!
tlw_02 2008-12-07
  • 打赏
  • 举报
回复
我查看无法显示的图片的链接属性 里面的图片地址是http://mywork.he.cn/Handler.ashx?PhotoID=6&Size=L
http://mywork.he.cn/是我空间的根目录handler就在根目录下,应该是正确的路径吧。
koukoujiayi 2008-12-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tlw_02 的回复:]
本地调试的时候图片链接的属性里类型是Jpeg图象 有具体的大小 创建时间 修改时间 在Web上访问的时候属性里的类型 大小 创建时间和修改时间都显示未不可用。我是用Handler.ashx?PhotoID=6&Size=M来显示图片的。会是什么原因呢?
会不会是创建图片的数据流缓存之类的问题? 可为什么调试的时候可以显示图片呢?
[/Quote]
肯定是个路径问题!!
Handler.ashx打绝对路径试试,也就IP地址/你的文件夹/..../Handler.ashx
koukoujiayi 2008-12-07
  • 打赏
  • 举报
回复
Handler.ashx放到服务器上这个路径对吗?
tlw_02 2008-12-07
  • 打赏
  • 举报
回复
本地调试的时候图片链接的属性里类型是Jpeg图象 有具体的大小 创建时间 修改时间 在Web上访问的时候属性里的类型 大小 创建时间和修改时间都显示未不可用。我是用Handler.ashx?PhotoID=6&Size=M来显示图片的。会是什么原因呢?
会不会是创建图片的数据流缓存之类的问题? 可为什么调试的时候可以显示图片呢?
koukoujiayi 2008-12-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tlw_02 的回复:]
我把图片直接存到数据库中去了,没有路径的,数据库中存储的是二进制数据。
[/Quote]
如果你是webForm,虽然图片直接存到数据库表中的,但显示还是调用一个显示图片的aspx文件的,
看看这个文件的路径!!
wuyq11 2008-12-07
  • 打赏
  • 举报
回复
在图片上点右键,看看图片地址是否正确
jiang_jiajia10 2008-12-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tlw_02 的回复:]
我把图片直接存到数据库中去了,没有路径的,数据库中存储的是二进制数据。
[/Quote]
那就是转换的时候出问题了吧
tlw_02 2008-12-07
  • 打赏
  • 举报
回复
我把图片直接存到数据库中去了,没有路径的,数据库中存储的是二进制数据。
jiang_jiajia10 2008-12-07
  • 打赏
  • 举报
回复
看看你的图片路径是否正确呢?

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧