无法加载本地资源或虚拟路径错误



情况

我有两个应用程序,可以读取图像/文档并将其保存到一个特定的文件夹中。例如,如果用户在一个程序中上传他们的图像,则程序 B 的用户应该查看甚至编辑该图像。

我做了什么

在我的一个应用程序中,我在设置中为我的路径字符串创建了一个设置。所以为了保存图像路径,我调用

path = System.IO.Path.Combine(Properties.Settings.Default.imagePath, Fimage);

这工作正常。 但是,我的问题是当我尝试在编辑视图中查看图像时。

控制器

ViewBag.imagePath =   Properties.Settings.Default.imagePath;

视图

<img src="@ViewBag.imagePath/@Url.Content(@Model.image)" alt="Image" style="height: 255px;  " />

问题

问题是在尝试查看图像时出现错误,Not allowed to load local resource:我对该文件夹具有完全访问权限,并且当我尝试浏览到错误消息中的文件时,将显示图片。我被建议使用其他问题,server.MapPath但是当我这样做时Server.MapPath(Properties.Settings.Default.imagePath);我会收到错误的物理路径,预期的虚拟路径。

此视图包包含我的文件存储的整个文件夹字符串,EVERYONE用户具有完全访问权限。所以我真的不确定它为什么要制造导火索。

附言我不能说类似"~/content/images",因为该文件的路径位于完全不同的应用程序中,我认为我需要为它提供整个位置。

任何帮助将不胜感激。

感激

看起来您的defaultImage变量包含一个物理路径,该路径可用于保存图像,因为 API 需要表单形式的路径,例如c:websiteimages....但是为了查看,您需要VirtualPath,形式http://mycoolsite/images/image.jpg的东西,这就是错误告诉您的。

因此,您的控制器应返回类似

ViewBag.imagePath = Properties.Settings.Default.imagePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty); 

为了获取相对路径。请参阅其他相关问题。

编辑我刚刚看到你的"PS...">

如果是这种情况,则需要将完整的 URL 传递给其他应用程序:(例如http://someothersite.com/images/image.jpg(。

最新更新