首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ASP.NET应用程序外部显示图像

从ASP.NET应用程序外部显示图像
EN

Stack Overflow用户
提问于 2011-01-13 20:04:49
回答 2查看 4.9K关注 0票数 2

所以我在显示项目文件夹外的图片时遇到了一些困难.

我似乎只能访问"~“目录和子目录中的图像.

说,如果我想访问"E:/XYZ/11-01-01 /“之类的图片,我该怎么做呢?

注意:我将所有文件夹和子文件夹的权限设置为“每个人”可读,因此IIS/Visual应该能够,但不显示图像控件中的图像

EN

回答 2

Stack Overflow用户

发布于 2011-01-13 20:14:36

您应该使用HttpHandler来显示图像。

谷歌搜索"httphandler图像“,就如何做到这一点找出了许多例子。

而不是试图直接链接到您的图像,您将链接到处理程序与查询字符串,以确定要显示的图像。例如

代码语言:javascript
复制
http://mysite.com/MyHandler.ashx?image=myimage.jpg

下面是一个非常基本的示例(减去错误处理等)

代码语言:javascript
复制
using System.IO;
using System.Web;
public class MyImageHandler : IHttpHandler 
{
    public void ProcessRequest(System.Web.HttpContext ctx) 
    {

        string _Path;

        _Path = "E:\\XYZ\\11-01-01 New Year\\" + context.Request.QueryString["image"];

        ctx.Response.StatusCode = 200;
        ctx.Response.ContentType = "image/jpeg";
        ctx.Response.WriteFile(_Path);      
    }

    public bool IsReusable { get {return true; } }        
 }
票数 5
EN

Stack Overflow用户

发布于 2011-01-13 20:16:03

除非您将虚拟目录映射到映像,否则客户端浏览器将永远不知道这些映像在哪里。在您的本地测试环境中,您可以通过将图像引用为"file:///E:/XYZ/11-01-01 New Year/myimage.jpg“来解决这个问题,但是这是非常糟糕的实践,并且永远不会在生产环境中工作。您应该始终使用应用程序工作目录中的相对路径,或者在其他地方使用静态定义的虚拟目录。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4684673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档