Image显示服务器上任意绝对路径下的图片
来源:互联网 发布:mac电脑如何更新系统 编辑:程序博客网 时间:2024/06/05 14:08
我要实现这样一个需求:数据库中存储的是照片所在的绝对路径(可以不在系统所在路径下),Image控件动态加载路径下的图片。
看到这个题目,有些人会说,这还不简单啊,将URL直接设置成绝对路径不就行了啊。我只能说,如果你这样说,那么只能说明你没有经过思考,甚至于,还没有搞清楚Web开发中前台代码和后台代码到底是什么意思,但是这种做法,在自己做的时候(未架到IIS),搜狗浏览器是可以显示图片的(仅此一款可以显示,所以这种做法没有意义)。
Image控件是在System.Web.UI.WebControls命名控件中,所以不能像在winform中那样通过byte[]直接显示图片(个人也有点不太明白这句话,谁如果明白可以解释一下)。找到的这种方法,是采取将图片读取,然后将读进来的二进制流写到一个页面上,然后将Image的URL设置为此页面。下面是我的Demo实现代码。
前台代码:
<head runat="server"> <title></title> <script src="jquery-1.7.1.js" type="text/javascript"></script> <script type="text/javascript"> function ShowP(obj) { $("#Image1")[0].src = "ShowPic.aspx?URL=" + obj.id; } </script></head><body> <form id="form1" runat="server"> <div> <input id="E:\\1.jpg" type="button" value="button" onclick="ShowP(this);" /> <asp:Image ID="Image1" runat="server" /> </div> </form></body></html>
ShowPic.aspx的前台代码为空,下面是ShowPic.aspx的后台代码:
public partial class ShowPic : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { #region "根据照片路径,将照片转为二进制数组" string strUrl = Request.QueryString["URL"]; // 以二进制方式读文件 FileStream aFile = new FileStream(strUrl, FileMode.OpenOrCreate, FileAccess.ReadWrite); // 创建一个二进制数据流读入器,和打开的文件关联 BinaryReader brMyfile = new BinaryReader(aFile); // 把文件指针重新定位到文件的开始 brMyfile.BaseStream.Seek(0, SeekOrigin.Begin); //获取照片的字节数组 byte[] photo = brMyfile.ReadBytes(Convert.ToInt32(aFile.Length.ToString())); // 关闭以上new的各个对象 brMyfile.Close(); #endregion Response.BinaryWrite(photo); } }
在上面我把照片的路径赋给了按钮ID,然后将路径作为参数来调用ShowPic.aspx,在ShowPic的后台代码中,将照片以二维数组的形式写到页面上,如果你直接打开这个页面,会显示乱码。
然后将Image的Url设置为这个页面,此时会显示图片。我通过按钮ID实现了一下动态加载图片,到具体应用,还有一点点传参的小问题,关于JavaScript传参,这个还是需要大家自己做个例子,通过javascript调试工具,来了解dom结构,然后进行操作。
- Image显示服务器上任意绝对路径下的图片
- ASP.NET c# 把服务器上绝对路径的图片以二进制流形式显示图片
- jsp显示绝对路径的图片
- 在ListView 的Column Header上显示任意图片
- jsp下显示硬盘下绝对路径下的中文文件名的图片
- jsp下显示硬盘下绝对路径下的中文文件名的图片
- jsp下显示硬盘下绝对路径下的中文文件名的图片
- JSP显示服务器路径下的图片
- 修改UIPageControl的点点,可替换任意图片image。
- 将服务器上的图片显示到客户端
- thttpd web服务器 html上的图片无法显示
- 关于图片放在服务器上 显示的问题
- 本地tomcat服务器上的图片显示到jsp
- 在控件的任意位置显示图片
- android 平台上加载、缓存,显示图片的开源代码Android-Universal-Image-Loader
- 实现网页上的图片任意拖动
- asp.net使用服务器控件Image/ImageButton显示本地图片
- jsp中绝对路径显示图片
- 时间管理的感受篇
- 瑞雪兆丰年——与Vb的第一次相遇相知
- 你若安好,便是晴天
- css常用综合案例
- 考拉小巫与我
- Image显示服务器上任意绝对路径下的图片
- oracle 不可见索引
- Codeforces Round #167 (Div. 1)
- ASP.NET用户控件可见性控制
- C++------------------------>异常处理(Exception handling)
- Vray 中将阴影当作灯光来使用
- 限制sqlserver表更新和删除行数
- 超级简单用puppy linux 建立自己的LIVECD
- 清华计算机专业考研经验谈