1

mp3ファイルを編集するためのアプリケーションを作成しています。編集が終わったら、ファイルをダウンロードするためのリンクを表示したいと思います。私は、ファイルの場所がわかっている場合、違法なファイルのために悪用される可能性があることを懸念しています。サーバー上のファイルへのリンクを表示する代わりに、ファイルをメモリに保存し(すでにtaglibを使用しています)、サーバーに保存せずにダウンロードをストリーミングできるようにするには、どうすればよいですか。

4

1 に答える 1

2

サーバー上のファイルの実際の場所をマスクしながら、HTTPハンドラーを使用してユーザーにファイルを書き込む必要があります。これにより、1回限りのダウンロードなど、ファイルのダウンロードに関するルールを適用できます。

参照: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 に答える