.NET Core如何从文件路径获取URL

时间:2018-12-04 08:13:47

标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc

这是我的应用程序结构

  • DS.UI
  • DS.Controllers
  • DS。存储库

在App.Repositories中,我有一个文件夹用于存储上传的文件。到目前为止,我已经能够获取格式如下的文件位置:

  

C:\ Users \ userone \ source \ repos \ DBN \ DS \ DS.Repository \ Repositories \ Sample \ acc_bcc.PNG

但是,当我尝试通过这样的超链接打开它时,它不会打开

var url =  data.Link;
return "<a href='" + url + "'>" + data.Name+"</i></a>"

a href当前显示https://localhost:8080/C:\ Users

如何将其转化为对href有用的内容?

编辑:

使用提供的答案,但我仍然被困住

"data": function (data, type, row, meta) {
    var url = "@Url.Action("GetFileData", @ViewContext.RouteData.Values["controller"].ToString())/" + data.Link;
    return "<a href='" + url + "'>" + data.Name+"</i></a>"
}, "name": "Name"

public FileResult GetFileData(string Input)
{
    var path = @Input;
    var FileName = "abc";
    var fileBytes = System.IO.File.ReadAllBytes(path);
    return File(fileBytes, MediaTypeNames.Application.Octet, FileName);
}

1 个答案:

答案 0 :(得分:0)

这是实现文件结果的示例,可以替换url:

"data": function (data, type, row, meta) {
        var url = "@Url.Action("GetFileData", @ViewContext.RouteData.Values["controller"].ToString())?input=" + data.Link;
        return "<a href='" + url + "'>" + data.Name+"</a>"
    }, "name": "Name"

public FileResult GetFileData(string input)
{
    // input is a full path
    var FileName = "abc";
    var fileBytes = System.IO.File.ReadAllBytes(input);
    return File(fileBytes, MediaTypeNames.Application.Octet, FileName);
}