首页 新闻 搜索 专区 学院

使用HttpHandler为图片添加水印没效果(图片路径绑定自数据库)

0
悬赏园豆:5 [已解决问题] 解决于 2009-06-10 20:21

  各位同仁,小弟现在遇到一个问题,不知道原因所在,我在.aspx页面中有如下代码:

  <asp:Image ID="Image1" ImageUrl='<%# Eval("photopath") %>' runat="server" />

  其中ImageUrl='<%# Eval("photopath") %>'是图片的路径字段。

  我现在想为图片添加水印,使用的是HttpHandler,发现HttpHandler根本就没有执行。配置文件和实现的IHttphandler接口代码应该没有错误,因为我直接用<img src="demo.jpg" />没有任何问题(数据库中的图片扩展名也是.jpg),各位同仁,有谁知道这是什么原因吗?有什么办法解决不?

雪燃的主页 雪燃 | 初学一级 | 园豆:149
提问于:2008-12-07 21:54
< >
分享
最佳答案
0

是执行的顺序问题,数据绑定确实不行。

你可以建立一个ashx(一般处理文件),如:ImageHander,在里面进行水印的处理,数据绑定改为以下方式:

<ItemTemplate>

  <img src='ImageHander.ashx?id=<%# Eval("ID") %>' />

</ItemTemplate>

这样就OK了。

Fencer | 初学一级 |园豆:7 | 2008-12-08 07:02
其他回答(4)
0

是页面生命周期执行的原因会(数据绑定#那一块),<asp:Image ID="Image1" ImageUrl="demo.jpg" runat="server" />这样管用不?

Astar | 园豆:40805 (高人七级) | 2008-12-07 22:24
0

为什么要不在上传时就加好水印,而要HttpHandler里加呢?效率大大的有问题啊..每次请求一次图片文件,都要执行加水印代码....   有这样搞的吗?

chaoren1641 | 园豆:110 (初学一级) | 2008-12-07 22:36
0

同意HarborHouse

否则访问图片频率很高,性能估计会比较惨不忍睹

JimLiu | 园豆:300 (菜鸟二级) | 2008-12-08 15:48
0

可能是你的IIS没有设置.jpg使用Asp.net处理,默认是由IIS直接处理的,所以Asp.net得不到.jpg请求,才没有反应!其实使用httpmodule更适合做这种水印过滤!

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-10 16:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册