我需要在我的ASP.NET MVC页面上显示图像,这些图像将存储在服务器上。我有一个apphelper类,可以用它来提供路径。
像这样
public static class AppHelper
{
public static string ImageLowResPath(string imageName)
{
}
}如何获取存储在服务器的c:盘上的文件路径?
在我看来,我将获得这样的文件路径
img src='<%=AppHelper.ImagelowResPath("10-1010.jpg") %>‘
谢谢
发布于 2010-06-17 23:51:07
如果文件在您的wwwroot之外,您必须创建一个返回FileStreamResult的操作。
例如:
public FilestreamResult GetPicture(string Filename) {
Filename = @"C:\SomePath\" + Filename;
return new FileStreamResult(new FileStream(Filename, FileMode.Open, FileAccess.Read, FileShare.Read), "image/jpeg"));
}您的html现在应该如下所示
<img src="/Controller/GetPicture?Filename=test.jpg" />更新只要您的图像是静态内容,不会频繁更改,并且您不需要实现某种访问控制,这确实不是最好的解决方案。
根据最佳实践,您应该跨多个域拆分组件。雅虎已经发布了一份关于加速网站http://developer.yahoo.com/performance/rules.html#split的最佳实践的优秀指南
发布于 2010-06-17 23:22:43
您需要使用Server.MapPath(...)它会将虚拟路径映射到其在磁盘上的物理位置:
string path = "~/Images/10-1010.jpg";
string filePath = Server.MapPath(path);发布于 2010-06-17 23:50:24
嗯,我不知道你到底想要什么,但是你可以试着模拟然后访问服务器共享?
[DllImport("advapi32.dll",EntryPoint = "LogonUser", SetLastError = true)]
public static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword,
int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
IntPtr admin_token = IntPtr.Zero;
WindowsIdentity wid = WindowsIdentity.GetCurrent();
WindowsIdentity wid_admin;
WindowsImpersonationContext wic;
LogonUser(user, servername, pass, 9, 0, ref admin_token)
wid_admin = new WindowsIdentity(admin_token);
wic = wid_admin.Impersonate();一旦你用适当的权限冒充了某个人,你可以去
\servername\c$(镜像路径)
https://stackoverflow.com/questions/3063021
复制相似问题