所以我在显示项目文件夹外部的图像时遇到了一些麻烦......
我似乎只能访问“〜”目录和子目录中的图像......
说,如果我想从“E:/ XYZ / 11-01-01新年/”或类似的东西访问图像我该怎么办?
注意:我将所有文件夹和子文件夹的权限设置为“Everyone”可读,因此IIS / Visual Studio应该能够但不显示图像控件中的图像
答案 0 :(得分:5)
您应该使用HttpHandler来显示图片。
Google搜索“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; } }
}
答案 1 :(得分:2)
除非您将虚拟目录映射到图像,否则客户端浏览器永远不会知道这些图像的位置。在本地测试环境中,您可以通过将图像引用为“file:///E:/XYZ/11-01-01 New Year/myimage.jpg
”来解决此问题,但这是非常糟糕的做法,并且永远不会在生产环境中工作。您应该始终在应用程序的工作目录中使用相对路径,或者在其他位置使用静态定义的虚拟目录。