日期:2014-05-18  浏览次数:20457 次

如何用DataGrid實現文件的下載,編緝,刪除
如何用DataGrid實現文件的下載,編緝,刪除
我的文件(如doc,exl,pdf等)是保存在服務器的硬盤裡,不是保存在數據庫哦..

------解决方案--------------------
// download code snippets
protected void Page_Init(object sender, EventArgs e)
{
string downFilePath = @ "D:\openSUSE-10.2-GM-DVD-i386.iso "; // test with 3.8GB, ok // Server.MapPath( "~/files/somefile.iso ");
System.IO.FileInfo downFileInfo = new System.IO.FileInfo(downFilePath);

if (!downFileInfo.Exists) throw new Exception( "文件不存在。 ");
const int CHUNK_SIZE = 10000; // 指定块大小
byte[] buffer = new byte[CHUNK_SIZE];

Response.Clear();
// fails to down the big file with both the following methods
// error: System.ArgumentOutOfRangeException: 大小参数必须介于零和最大的 Int32 值之间。
// Response.WriteFile(downFilePath);
// OR
// Response.TransmitFile(downFilePath); // ASP.NET 2.0 supported
//
using (System.IO.FileStream iStream = System.IO.File.OpenRead(downFilePath)) {
long dataLengthToRead = iStream.Length;
Response.ContentType = "application/octet-stream ";
Response.AddHeader( "Content-Disposition ",
"attachment; filename= " + Server.UrlPathEncode(downFileInfo.Name)); // 对文件名进行编码
while (dataLengthToRead > 0 && Response.IsClientConnected) {
int lengthRead = iStream.Read(buffer, 0, CHUNK_SIZE);
Response.OutputStream.Write(buffer, 0, lengthRead);
Response.Flush();
dataLengthToRead = dataLengthToRead - lengthRead;
}
}
Response.Close();
}