【问题标题】:asp mvc how to serve image/file/video out of my root folder?asp mvc 如何从我的根文件夹中提供图像/文件/视频?
【发布时间】:2015-02-26 14:30:21
【问题描述】:

我在 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

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

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

【问题讨论】:

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


    【解决方案1】:

    通常在这种情况下,您将创建一个控制器和一组操作方法来将文件传递给用户。这使您可以控制 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。在此方法中,您仍然需要做一些工作来将文件名参数(或 id 或您查找文件的方式)转换为您应该检索的实际文件。

    【讨论】:

    • 谢谢!它适用于视觉工作室......它下载文件;)现在我要在科尔多瓦部分工作;)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-04-09
      • 2012-08-23
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2013-08-22
      • 2011-04-08
      • 2012-03-17
      相关资源
      最近更新 更多