各位同仁,小弟现在遇到一个问题,不知道原因所在,我在.aspx页面中有如下代码:
<asp:Image ID="Image1" ImageUrl='<%# Eval("photopath") %>' runat="server" />
其中ImageUrl='<%# Eval("photopath") %>'是图片的路径字段。
我现在想为图片添加水印,使用的是HttpHandler,发现HttpHandler根本就没有执行。配置文件和实现的IHttphandler接口代码应该没有错误,因为我直接用<img src="demo.jpg" />没有任何问题(数据库中的图片扩展名也是.jpg),各位同仁,有谁知道这是什么原因吗?有什么办法解决不?
是执行的顺序问题,数据绑定确实不行。
你可以建立一个ashx(一般处理文件),如:ImageHander,在里面进行水印的处理,数据绑定改为以下方式:
<ItemTemplate>
<img src='ImageHander.ashx?id=<%# Eval("ID") %>' />
</ItemTemplate>
这样就OK了。
是页面生命周期执行的原因会(数据绑定#那一块),<asp:Image ID="Image1" ImageUrl="demo.jpg" runat="server" />这样管用不?
为什么要不在上传时就加好水印,而要HttpHandler里加呢?效率大大的有问题啊..每次请求一次图片文件,都要执行加水印代码.... 有这样搞的吗?
可能是你的IIS没有设置.jpg使用Asp.net处理,默认是由IIS直接处理的,所以Asp.net得不到.jpg请求,才没有反应!其实使用httpmodule更适合做这种水印过滤!