asp mvc如何从我的根文件夹中提供图像/文件/视频?

时间:2015-02-26 14:30:22

标签: c# asp.net .net asp.net-mvc asp.net-mvc-4

我有一个关于Asp.Net MVC4的后端女巫在数据库中存储“文件名”和“路径”。例如:

FileName        Path
AAAA           V:\Clientes\FileName1.pdf
BBBB           V:\Clientes\FileName2.pdf
DDDD           V:\Clientes\FileName3.pdf
CCCC           V:\Clientes\FileName4.pdf

事实是我将从cordova应用程序中使用此响应(JSON),并且我需要使用我的应用程序来提供这些文件,例如使用这样的URL:

www.myawesomeapp.com/files/FileName1.pdf

如何实现这一目标?他们不想上传任何内容,只想对后端说服务器(映射驱动器)存储文件的位置,仅此而已,但这对于在客户端打开此文件无效。 / p>

任何帮助或线索?提前谢谢

2 个答案:

答案 0 :(得分:2)

通常在这种情况下,您将创建一个控制器和一组操作方法,以将文件传递给用户。这使您可以控制URL格式和路径,并允许您对请求文件的用户执行安全和授权检查(如果它们不公开)。

public class FilesController : Controller
{
     //I guess you would want to lookup by filename?
     public FileResult Index(string filename ){
            var fileToReturn = new FileStream("full path to file", FileMode.Open);
            return File(fileToReturn, "content-disposition", "fileName.extension");
     }
}

您用作示例的URL现在应该返回FileName1.pdf。实际上,根据你的“桌子”排在最前面,网址可能是http://www.myawesomeapp.com/Files/AAAA的内容。在这个方法中有一些工作,你仍然需要做的是将filename参数(或id或你查找文件)转换成你应该检索的实际文件。

答案 1 :(得分:2)

您可以将网络位置映射为IIS中绑定到此域的站点下的虚拟目录。