繁体   English   中英

在Asp.Net MVC5中查看网络文件

[英]Viewing Network Files in Asp.Net MVC5

我正在实现一个系统,用户可以上载几乎任何文件类型的任意数量的文档以链接到“工作项”。 本质上,用户可以生成一个任务,称为工作项,并将任意数量的文件附加到该任务。 我已经实现了用于处理工作项本身,上载文件,管理文件(编辑和删除)的组件,但是在查看文件时遇到了问题。

用户上载文件时,该文件将保存在网络文件夹中。 所有用户都具有对该目录中所有文件的读取权限。 文件的路径保存在数据库中,我可以通过实体框架访问该数据库。

我当前的问题是我找不到打开这些文件的通用方法。 我已经实现了将文件流式传输到浏览器的控制器,但这仅适用于某些文件类型。

具体来说,我尝试过:

  • 创建一个超链接并将文件路径放在href标记中,但这会尝试打开相对于Web服务器上应用程序位置的文件路径。 基本上,它将文件路径附加到当前URL。

    • 例:

      • href="@Path.Combine(item.PATH, item.NAME)"
    • 输出:

      • href="\\\\server\\myapp\\item\\3\\test.jpg"
      • 但是,当我单击该锚点时,它相对于我当前的URL是打开的。
  • 创建一个控制器以通过WebClient流式传输文件,但这仅适用于特定的文件类型。

总之,有没有一种方法可以通过浏览器或在客户端计算机上打开MVC中的任何文件?

提出问题后,我记得我可以将文件下载到客户端。 此时,他们可以根据需要打开它。

我向控制器添加了一个动作,以从网络位置下载它:

// GET: Viewer/File
[HttpGet]
public FileResult Download(string path)
{
   byte[] fileBytes = System.IO.File.ReadAllBytes(path);
   string fileName = Path.GetFileName(path);
   return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

取自这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM