1

我正在制作一个编辑 mp3 文件的应用程序。编辑完成后,我想提供一个下载文件的链接。我只是担心文件位置(如果已知)可能会被非法文件滥用。我需要做什么,而不是在服务器上显示文件的链接,我可以将它存储在内存中(我已经使用 taglib),然后流式传输下载而不将其存储在服务器上。

4

1 回答 1

2

您需要使用 HTTP 处理程序将文件写入用户,同时掩盖文件在服务器上的真实位置。这将使您能够强制执行有关文件下载的任何规则,例如一次性下载。

请参阅:如何创建 HTTP 处理程序

处理程序中的代码需要根据您的需要是唯一的,但以下几行的内容应该会有所帮助:

public void ProcessRequest(HttpContext context)
{
   context.Response.ContentType = "Application/mp3"; 
   context.Response.AppendHeader("Content-Disposition", "attachment; filename=mysong.mp3"); 
   context.Response.TransmitFile(Server.MapPath("~/Files/song.mp3")); 
}

如果您不想在任何地方保存实际文件,则可以使用Stream ,但这应该可以帮助您入门。

于 2012-08-28T17:08:44.560 回答