博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

显示非站点目录下的图片

Posted on 2016-12-04 19:42  sky410  阅读(240)  评论(0编辑  收藏  举报

本博文,Insus.NET教你怎样显示非站点目录下的图片,你可以显示站点所在服务器所有驱动器目录的图片,以及映射网络磁盘路径的图片。下面举两个例子,一是显示D盘下图片,另一个例子是显示映射网路路径图片。

最实用于在企业内部,经常性需要临时显示图片,但用户不想上传大量图片,而是放置在某一台工作站上。因此需要映射路径即可,或是直接拷贝至服务器某一驱动器之下即可。

 

下面例子是显示映射网络磁盘目录图片:

 

你可以创建一个ashx 文件来处理图片(核心代码):

复制代码
<%@ WebHandler Language="C#" Class="Insus.NET.ShowOutSiteImage" %>

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

namespace Insus.NET
{
    public class ShowOutSiteImage : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {

            string parameter = context.Request.QueryString["file"];

            FileStream fs = new FileStream(parameter, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            Byte[] bytes = br.ReadBytes((Int32)fs.Length);
            br.Close();
            fs.Close();
            context.Response.OutputStream.Write(bytes, 0, bytes.Length);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
复制代码


在需要显示图片时,下面的HTML的"图片路径"语法,可参考上面两截图。

<asp:Image ID="Image1" runat="server" ImageUrl="~/ShowOutSiteImage.ashx?file=图片路径" />