<httpRuntime maxRequestLength="这里是你想要的文件大小" />
然后下载的话 如果非特殊文件用<A>标签就可以啦..这个还根据浏览器不同展示出不同的效果..
刚碰到这个问题,下面的代码可以直接拷贝使用。protected void Page_Load(object sender, EventArgs e)
{
DownFile1(@"D:\常用软件\win7.iso", "win7.iso")
}
private void DownFile1(string filePath, string fileName)
{
ResponseFile(this.Request, this.Response, fileName, filePath, 1024000)
}
// 输出硬盘文件,提供下载
// 输入参数 _Request: Page.Request对象, _Response: Page.Response对象, _fileName: 下载文件名, _fullPath: 带文件名下载路径, _speed 每秒允许下载的字节数
// 返回是否成功
public static bool ResponseFile(HttpRequest _Request, HttpResponse _Response, string _fileName, string _fullPath, long _speed)
{
try
{
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
BinaryReader br = new BinaryReader(myFile)
try
{
_Response.AddHeader("Accept-Ranges", "bytes")
_Response.Buffer = false
long fileLength = myFile.Length
long startBytes = 0
int pack = 10240//10K bytes
//int sleep = 200 //每秒5次 即5*10K bytes每秒
int sleep = (int)Math.Floor((double)(1000 * pack / _speed)) + 1
if (_Request.Headers["Range"] != null)
{
_Response.StatusCode = 206
string[] range = _Request.Headers["Range"].Split(new char[] { '=', '-' })
startBytes = Convert.ToInt64(range[1])
}
_Response.AddHeader("Content-Length", (fileLength - startBytes).ToString())
if (startBytes != 0)
{
_Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, fileLength - 1, fileLength))
}
_Response.AddHeader("Connection", "Keep-Alive")
_Response.ContentType = "application/octet-stream"
_Response.AddHeader("Content-Disposition", "attachmentfilename=" + HttpUtility.UrlEncode(_fileName, System.Text.Encoding.UTF8))
br.BaseStream.Seek(startBytes, SeekOrigin.Begin)
int maxCount = (int)Math.Floor((double)((fileLength - startBytes) / pack)) + 1
for (int i = 0i <maxCounti++)
{
if (_Response.IsClientConnected)
{
_Response.BinaryWrite(br.ReadBytes(pack))
Thread.Sleep(sleep)
}
else
{
i = maxCount
}
}
}
catch
{
return false
}
finally
{
br.Close()
myFile.Close()
}
}
catch
{
return false
}
return true
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)