发送文件以从控制器查看

时间:2018-10-12 21:16:17

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

我正在尝试将文件从MVC 5控制器发送到angularjs客户端。我需要在响应中指定文件名。

[HttpGet]
public ActionResult DownloadAttachment([FromUri] long NoteId)
{
    var attachment = db.tcp_tahGeneral_downloadNotesAttachment_API(NoteId).First();
    var path = attachment.AttachmentLocation;

    if (File.Exists(path))
    {
        FileStream stream = new FileStream(path, FileMode.Open);
        byte[] file = new byte[stream.Length];
        stream.Read(file, 0, file.Length);

        return new FileContentResult(file, attachment.AttachmentFileType);
    }
    return null;
}

这将发送文件,但不允许我指定新文件名。

1 个答案:

答案 0 :(得分:0)

FileContentResult中有一个属性FileDownloadName用于设置文件名,您可以尝试以下return语句。

return new FileContentResult(file, attachment.AttachmentFileType) 
           { 
              FileDownloadName = "myfilename.myext"
           };