C# 如何将图像添加到.resx文件中?
当然,除了使用VisualStudio的AddResource按钮之外 我提交了一个表单,以及一个图像文件。在控制器操作中,我使用C# 如何将图像添加到.resx文件中?,c#,asp.net-mvc-3,image,resources,C#,Asp.net Mvc 3,Image,Resources,当然,除了使用VisualStudio的AddResource按钮之外 我提交了一个表单,以及一个图像文件。在控制器操作中,我使用Path.GetFileName()获取HttpPostedFileBase对象及其文件名。如果我只是使用SaveAs()函数在我的应用程序中保存图像文件,我以后就无法访问它进行测试,因为它会导致“不允许加载本地资源”错误 因此,我想将图像添加到.resx文件中,稍后使用ResourceManager或其他方法检索它。我的问题是,如何将控制器操作中的映像添加到.res
Path.GetFileName()
获取HttpPostedFileBase
对象及其文件名。如果我只是使用SaveAs()
函数在我的应用程序中保存图像文件,我以后就无法访问它进行测试,因为它会导致“不允许加载本地资源”错误
因此,我想将图像添加到.resx文件中,稍后使用ResourceManager
或其他方法检索它。我的问题是,如何将控制器操作中的映像添加到.resx文件中
我还应该问,对于在我的应用程序中添加和检索图像文件来说,这是否是一种好方法
编辑:
好的,使用.resx存储图像不是一个好主意。我最初的问题是我可以保存图像文件,但是当我试图在视图中显示它时,它给出了“不允许加载本地资源”错误
以下是控制器代码:
public ActionResult UrunEkle(Urun urun, HttpPostedFileBase image)
{
Directory.CreateDirectory(Server.MapPath("~/App_Data/Images"));
var path = Path.Combine(Server.MapPath("~/App_Data/Images"), fileName);
image.SaveAs(path);
urun.ArtUrl = path;
// other stuff....
}
在我看来,我试图像这样检索图像:
<img alt="@urun.name" src="@Url.Content(urun.ArtUrl)" />
但是使用Google Chrome,我得到了这样一个信息:“不允许加载本地资源”。如何避免这种情况?忘记尝试将图像添加到RESX文件;它不是为在运行时修改而设计的 请发一些代码。最有可能的情况是,您为稍后使用该图像而提供的URL不正确。可能是因为您返回的是服务器上文件的路径,而不是网站上下文中图像的URL 来自Chrome的错误消息告诉您,它正试图从客户端的本地文件系统加载资源
Content将相对虚拟路径转换为绝对虚拟路径,并且需要一个以~开头的Url。您当前正在传递图像文件和Url的绝对物理路径。内容将返回图像文件和Url,但未更改。您需要urun.ArtUrl中的相对虚拟路径(~/App\u Data/Images/Untitled.png)。这是您传递给Server.MapPath的值。为什么要为此使用资源文件?资源文件用于运行应用程序所需的资源,而不是存储外部数据。是的,我也有这种感觉,但我遇到了“不允许加载本地资源”错误,我如何才能避免这种情况?谁在哪一行给出了错误?请显示一些代码。:-)如果您在浏览器中查看源代码,其中的src属性是什么?
现在@Url.Content()
采用“~/App\u Data/Images/Untitled.png”,我在源代码中看到了
。但现在它给出了“加载资源失败:…403(禁止)”错误,正如我在Chrome的consoleOK中看到的,所以我们已经解决了您最初的问题。现在您遇到了权限问题。查看新创建的图像文件夹的权限。请尝试向“图像”文件夹中的所有人授予读取权限,然后重试。让我们