你可以尝试做一个处理这个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
图书馆阅读。
context.Response.ContentType = ""; //-->MimeType for your file's extension
您可以通过注册表,除非你的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 2009-08-26 07:08:13
这是一个txt文件,通常会直接显示在浏览器中。如果内容类型设置为“application/octet-stream”,我猜浏览器会启动下载到磁盘。 – awe 2009-08-26 07:59:17
那么“txt”文件就是一个例子。它不直接显示在浏览器中。有了这个响应,它总是可以下载的。 – 2009-08-27 10:26:02