asp mvc 如何从我的根文件夹中提供 image/file/video 服务?

asp mvc how to serve image/file/video out of my root folder?

我在 Asp.Net MVC4 上有一个后端,在数据库中存储 "filename" 和 "Path"。示例:

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

如何实现?他们不想上传任何东西,只想告诉后端在服务器(映射驱动器)中存储文件的位置,仅此而已,但这对于在客户端打开此文件是无效的。

有什么帮助或线索吗?提前致谢

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

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 现在应该 return FileName1.pdf。实际上,根据您在顶部的 "table",url 可能类似于 http://www.myawesomeapp.com/Files/AAAA。在此方法中有一些工作您仍然需要将文件名参数(或 id 或您查找文件的任何方式)转换为您应该检索的实际文件。

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