をあなたはこのwork.Itのハンドラを作ってみることができますが、うまく修正することができれば、より安全です。 この作業では、ページのファイルパスを暗号化して、ファイルのリンク先を指定する必要があります。
<a href=\"Downloads.ashx?f={0}\" target=\"_blank\">Your link to file</a>
//{0} -> Encrypted file path
//target = _blank force browser to download file in another window
暗号化技術の多くは、あなたのハンドラページではhere
であり、あなたはSystem.IO
ライブラリとそれを読むことができるように、元の1にファイルパスを解読する必要があります。
context.Response.ContentType = ""; //-->MimeType for your file's extension
あなたのMIMEタイプは、画像などの静的でない限り、あなたは、レジストリがあなたのMIMEタイプを指定することができます。
string mimeType = Registry.GetValue(string.Format(@"HKEY_CLASSES_ROOT\.{0}",
Path.GetExtension(decryptedfilePath)), "Content Type", null).ToString();
//Then everything is ready for download
byte[] buffer = File.ReadAllBytes(decryptedfilePath);
context.Response.OutputStream.Write(buffer, 0 , buffer.Length);
context.Response.Flush();
幸運。
クライアントに提供したいファイルを指し示すURLを作成し、それをブラウザに渡してファイルをダウンロードするだけでは不思議です。 ? – 7wp
これは通常はブラウザに直接表示されるtxtファイルです。コンテンツタイプが "application/octet-stream"に設定されている場合、ブラウザはディスクへのダウンロードを開始すると思います。 – awe
よく「txt」ファイルは単なる例です。ブラウザには直接表示されません。この応答では、常にダウンロード可能です。 –