Dim fInfo As System.IO.FileInfo = New FileInfo(file)
Dim fname As String = fInfo.Name
Response.Buffer = True
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(fname)))
Response.AddHeader("Content-Length", fInfo.Length.ToString())
Response.ContentType = "application/octet-stream"
Dim MyFileStream As FileStream = New FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
Dim FileSize As Long = MyFileStream.Length
Dim Buffer(CInt(FileSize)) As Byte
MyFileStream.Read(Buffer, 0, Int32.Parse(FileSize))
MyFileStream.Close()
Response.BinaryWrite(Buffer)
Dim fname As String = fInfo.Name
Response.Buffer = True
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(fname)))
Response.AddHeader("Content-Length", fInfo.Length.ToString())
Response.ContentType = "application/octet-stream"
Dim MyFileStream As FileStream = New FileStream(file, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read)
Dim FileSize As Long = MyFileStream.Length
Dim Buffer(CInt(FileSize)) As Byte
MyFileStream.Read(Buffer, 0, Int32.Parse(FileSize))
MyFileStream.Close()
Response.BinaryWrite(Buffer)
byte[] FileData = new byte[ fs.Length ];
fs.Read( FileData, 0, ( int ) fs.Length );
Response.Clear();
Response.AddHeader( "Content-Type", "application/zip" );
string FileName = System.Web.HttpUtility.UrlEncode( System.Text.Encoding.UTF8.GetBytes( _FileName ) );
Response.AddHeader("Content-Disposition", "inline;filename="+ System.Convert.ToChar(34) + FileName + System.Convert.ToChar(34) );
Response.AddHeader("Content-Length", fs.Length.ToString() );
Response.BinaryWrite( FileData );
fs.Close();
System.IO.File.Delete( _FilePath );
我运行下面这段代码,解决了之前的问题,但是现在我下载完一个文件后,再去下载会打出一屏的乱码,怎么解决?
string FilePath="f:/clips/DRMTest/dldtest.wmv";
System.IO.FileStream fs = System.IO.File.OpenRead(FilePath);
byte[] FileData = new byte[ fs.Length ];
fs.Read( FileData, 0, ( int ) fs.Length );
Response.Clear();
Response.AddHeader( "Content-Type", "application/ms-download" );
string FileName = "下载速度测试";
Response.AddHeader("Content-Disposition", "inline;filename=" + HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8));
Response.AddHeader("Content-Length", fs.Length.ToString() );
Response.BinaryWrite( FileData );
fs.Close();
--》Response.End();