繁体   English   中英

显示来自ASP.NET应用程序外部的图像

[英]Show Images from outside of ASP.NET Application

所以我在从项目文件夹外部显示图像时遇到了一些麻烦...

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

说,如果我要访问“ E:/ XYZ / 11-01-01 New Year /”或类似图片,该怎么办?

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

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

搜寻“ httphandler图像”会发现许多有关如何执行此操作的示例。

与其尝试直接链接到您的图像,不如使用查询字符串链接到处理程序来确定要显示的图像。 例如

http://mysite.com/MyHandler.ashx?image=myimage.jpg

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

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; } }        
 }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM