long lngFileSize;
byte[] bytBuffer;
int iReading;
string sFileName = path + fName;
Stream outStream = Response.OutputStream;
Response.ContentType="application/octet-stream";
Response.AppendHeader("Connection","keep-alive");
Response.AppendHeader("Content-Disposition"," attachment; filename = "+fName );
FileStream fStream = new FileStream(sFileName,FileMode.OpenOrCreate,FileAccess.Read);
lngFileSize = fStream.Length;
bytBuffer = new byte[(int)lngFileSize];
while((iReading=fStream.Read(bytBuffer,0,(int)lngFileSize)) > 0)
{
outStream.Write(bytBuffer,0,iReading);
}
fStream.Close();
outStream.Close();
на самом деле все гораздо проще
string sFileName = path + fName;
Response.ContentType="application/octet-stream";
Response.AppendHeader("Connection","keep-alive");
Response.AppendHeader("Content-Disposition"," attachment; filename = " + fName );
Response.WriteFile( sFileName );
Response.End();
ну или на худой конец
Response.BinaryWrite(bytBuffer);
|