asp.Net中大ファイルダウンロード
4610 ワード
IISでサポートされている最大ファイルはint 32の最大値ビット数のファイルダウンロードであるため、2 Gを超えるファイルはIISでダウンロードできない.
インターネットで検索した資料は、以下のようにファイルのダウンロードを実現し、filestreamを使用してダウンロードすることができます.
転載先:https://www.cnblogs.com/syp1Blog/p/10899576.html
インターネットで検索した資料は、以下のようにファイルのダウンロードを実現し、filestreamを使用してダウンロードすることができます.
public void download()
{
System.IO.Stream iStream = null;
byte[] buffer = new Byte[10000];//
int length;
long dataToRead;
string filepath = Server.MapPath("~/Upload/XXX/YYY.rar");//
string filename = System.IO.Path.GetFileName(filepath);
try
{
iStream = new System.IO.FileStream(filepath, FileMode.Open, FileAccess.Read);
dataToRead = iStream.Length;
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/unknow";
Response.AddHeader("Content-Length", dataToRead.ToString());
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
while (dataToRead > 0)
{
if (Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
Response.OutputStream.Write(buffer, 0, length);
Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
dataToRead = -1;
}
}
}
catch (Exception ex)
{
Response.Write("Error : " + ex.Message);
}
finally
{
if (iStream != null)
{
iStream.Close();
}
Response.End();
}
}
転載先:https://www.cnblogs.com/syp1Blog/p/10899576.html