0

我有一个包含大量 mp3 的网络应用程序可供下载。我在每个 mp3 旁边都有下载链接供下载。我想记录下载了哪些谈话,所以下载链接转到控制器操作。

public ActionResult DownloadTalk(int talkId)

然后该操作调用一个存储库来增加该谈话已被下载。谈话存储在 Amazon S3 上,ACL 可以通过 URL 公开访问这些谈话内容。

我希望能够强制下载文件。目前我只是重定向到 url,这有时会导致文件被下载,有时会导致 mp3 文件在浏览器中打开(我不想要)。

 return Redirect(talk.Url);

我知道如何MemoryStream使用 SDK 从 S3 获取媒体,但是如何根据MemoryStreamurl 或 url 强制下载(返回 FileActionResult)?

任何帮助表示赞赏。

4

1 回答 1

0
public ActionResult DownloadTalk(int talkId)
{
    var talk = GetTalk(talkId);
    IncrementTalkCount(talk);
    var stream = GetStreamFromTalk(talk);
    return File(stream, "contentType", "fileName");
}
于 2013-04-20T16:31:07.637 回答