-
Jpg文件的Mimetype为Image/Jpeg
by{ guangboo }, published {2010-03-25}, Tag { HTML / .net / }由于项目的原因,开发了几套系统,部署在不同的服务器上,但数据库可以统一的访问,但附件就不太那么容易处理了,如文章里面的图片一般都是存储在磁盘上的,并且都是相对路径,而其他系统访问此文章的时候,图片就获取不到了。
这里的解决方案是使用DFS,分布式文件服务系统,将文件共享,或可以利用DFS复制,同步这些图片。因为DFS复制需要使用域和AD的方式来创建文件根目录,我使用的是独立根目录创建的,因此访问图片还是要共享的服务器上读取。
图片的读取时没有问题的,但在IE 6下,文章中显示图片没有问题,但使用IE 6直接访问图片就不行了,在IE 8下面文章中显示图片和直接访问图片都不能显示。后来发现,bmp格式的图片都能访问,无论在IE 6还是IE 8,还是在文章中显示,还是直接访问图片都正常。偏偏是jpg格式的文件出现上述情况。
原来我去图片的MimeType的时候出的问题,因为,bmp,gif等的MimeType为image/bmp,image/gif,而jpg的MimeType是image/jpeg,因此简单的使用"image/" + extesion,是可靠的。
-
Textbox的Autopostback="True"引起的误会
by{ guangboo }, published {2010-03-25}, Tag { asp.net / }今天一位网友问我一个问题,内容如下:
“页面上一个保存按钮 我第一次点击他的时候他跑到重写的Render方法里面 第二次点击他的时候才进去click事件”。
我首先想到的是,onclick事件是在Render方法里面才绑定的。
然后我继续问一些问题,进一步了解“现场”情况。了解到事件是在<asp:textbox onclick="btnSave_Click".../>这里就已经绑定了。而且看来他贴出来的Render方法的代码,没有任何相关的代码。然后网友远程,让我看了一下他的演示。然后我看了一下代码,发现TextBox中设置了AutoPostBack的属性为true,因此导致了第一次的点击是TextBox的OnTextChanged事件,当然不是btnSave_Click事件,而第二次,才是Click事件。当然保证第二次点击触发的是Click事件的是,TextBox的Text没有发生变化才行。
因此在TextBox的AutoPostBack属性设为True时,且当TextBox的值发生了变化,那么页面回发的事件就是TextBox的OnTextChange事件。所以出现这次误会的罪魁祸首就是TextBox的AutoPostBack属性。