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

标签 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

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

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

最佳答案

通常在这种情况下,您会创建一个 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/

相关文章:

c# - 使用分部类实现分层接口(interface)以提高可读性

c# - 将表中的数据绑定(bind)到前端的转发器

.net - .NET 2.0 程序集可以在 .NET 4.0 下运行吗?

c# - 发生基类虚方法隐藏时如何强制编译报错?

c# - 如何从文本文件中删除逗号的最后一个索引?

c# - 如何使用 1 个计时器入队并使用另一个计时器出队

c# - 为什么 `j=++i+++i;` 在 C# 和 C 中的输出不同?

c# - 从 html 内容生成 META 关键字

c# - 如何将jquery添加到asp.net页面并格式化gridview列

c# - 从字符串转换日期和/或时间时转换失败