我在 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
如何实现?他们不想上传任何东西,只想告诉后端在服务器(映射驱动器)中存储文件的位置,仅此而已,但这对于在客户端打开此文件是无效的。
有什么帮助或线索吗?提前致谢
最佳答案
通常在这种情况下,您会创建一个 Controller 和一组操作方法来将文件传送给用户。这使您可以控制 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。实际上,根据顶部的“表”,该 url 可能类似于 http://www.myawesomeapp.com/Files/AAAA
。在此方法中,您仍然需要做一些工作来将文件名参数(或 id 或您查找文件的任何方式)转换为您应该检索的实际文件。
关于c# - asp mvc 如何从我的根文件夹中提供图像/文件/视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745052/