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