使用C#和IIS7。我的所有其他服务器都运行该组合,如果我可以对文件服务器执行相同的操作,它会稍微简化一些事情。更重要的是,托管的文件很大。我见过人们使用applet创建FileStream对象、读入文件并手动创建HTTP响应的示例。这可行,但由于我正在处理500+MB大小的文件,所以速度很慢。我可能有300个用户同时单击该框,请求该文件。这不好。那么,有人看到这个方法吗?我正在尝试创建一个更加透明的系统,如果我的所有服务器都运行相同的软件/硬件,这将使我的生活变得更加轻松。在此先感谢您的任何建议!你知道吗?知识库文章是便便。这是我的官方建议:publicvoidStreamFile(stringfilePath){stringfileName=Path.GetFileName(filePath);使用(varfStream=newFileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read)){varcontentLength=fStream.Length;if(Request.UserAgent.Contains("MSIE")){Response.AddHeader("Content-Transfer-Encoding","binary");}Response.ContentType="application/octet-stream";Response.AddHeader("Content-Length",contentLength.ToString());//即使“Content-Disposition”应该有一个大写的“d”,根据http://www.ietf.org/rfc/rfc2183.txt//如果“d”是大写的,IE将无法识别-装箱。Response.AddHeader("Content-disposition","attachment;filename="+fileName);varbuffer=newbyte[8192];while(Response.IsClientConnected){varcount=fStream.Read(buffer,0,buffer.Length);如果(计数==0){中断;}Response.OutputStream.Write(buffer,0,count);Response.Flush();}}Response.Close();这篇文章有我的解决方案,可以在用户下载文件时降低内容内存使用但是,您可能需要使用比我的示例更大的缓冲区。您可能对Microsoft的后台智能传输服务(BITS)感兴趣。http://msdn.microsoft.com/en-us/library/bb968799%28VS.85%29.aspx2.5版引入了通过证书进行的HTTP身份验证。虽然这不是直接适用的,因为您使用的是MySql,但需要考虑一些事情(使用sqlserver2008express甚至是免费的)。SqlServer2008提供文件流支持,允许您访问文件,就像它们直接存储在数据库中一样,但实际上驻留在文件服务器上。来自其他帖子的信息可以帮助您将此内容提供给用户。SQLServer2008中的FILESTREAM存储以上是C#学习教程:使用C#和IIS7保护大规模下载分享的所有内容。如果对大家有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
