我有一个关于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>
任何帮助或线索?提前谢谢
答案 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中绑定到此域的站点下的虚拟目录。