下載,直接通過url讀取文件,然后Response.OutputStream.Write()數(shù)據(jù)
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),興化網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:興化等地區(qū)。興化做網(wǎng)站價(jià)格咨詢:18982081108
下面提供個(gè)下載的靜態(tài)方法,是C#的,供參考:
///?summary
///?下載文件
///?/summary
///?param?name="fileName"下載的文件名稱(包括擴(kuò)展名)/param
///?param?name="filePath"下載文件的絕對(duì)路徑/param
public?static?void?DownFile(string?fileName,?string?filePath)
{
//打開要下載的文件,并把該文件存放在FileStream中????????????????
System.IO.FileStream?Reader?=?System.IO.File.OpenRead(filePath);
//文件傳送的剩余字節(jié)數(shù):初始值為文件的總大小????????????????
long?Length?=?Reader.Length;
HttpContext.Current.Response.Buffer?=?false;
HttpContext.Current.Response.AddHeader("Connection",?"Keep-Alive");
HttpContext.Current.Response.ContentType?=?"application/octet-stream";
HttpContext.Current.Response.Charset?=?"utf-8";
HttpContext.Current.Response.AddHeader("Content-Disposition",?"attachment;?filename="?+?System.Web.HttpUtility.UrlEncode(fileName));
HttpContext.Current.Response.AddHeader("Content-Length",?Length.ToString());
byte[]?Buffer?=?new?Byte[10000];//存放欲發(fā)送數(shù)據(jù)的緩沖區(qū)????????????????
int?ByteToRead;?//每次實(shí)際讀取的字節(jié)數(shù)???????????????
while?(Length??0)
{????
//剩余字節(jié)數(shù)不為零,繼續(xù)傳送????????????????????
if?(HttpContext.Current.Response.IsClientConnected)
{????
//客戶端瀏覽器還打開著,繼續(xù)傳送????????????????????????
ByteToRead?=?Reader.Read(Buffer,?0,?10000);???????????????????//往緩沖區(qū)讀入數(shù)據(jù)????????????????????????
HttpContext.Current.Response.OutputStream.Write(Buffer,?0,?ByteToRead);????
//把緩沖區(qū)的數(shù)據(jù)寫入客戶端瀏覽器????????????????????????
HttpContext.Current.Response.Flush();?//立即寫入客戶端????????????????????????
Length?-=?ByteToRead;//剩余字節(jié)數(shù)減少????????????????????????????}
else
{?????????????????????????
//客戶端瀏覽器已經(jīng)斷開,阻止繼續(xù)循環(huán)????????????????????????
Length?=?-1;
}
}????????????????//關(guān)閉該文件???????????????
Reader.Close();
}
QQ:121一九五五121
給你一個(gè)遍歷所有盤符下的文件夾的例子加一個(gè)遍歷文件的就可以了。TreeNode node = new TreeNode("我的電腦"); treeView.Nodes.Add(node); //加入一個(gè)我的電腦節(jié)點(diǎn) string[] drivesName = System.IO.Directory.GetLogicalDrives() //取得驅(qū)動(dòng)器列表的集合 foreach(string name in drivesName) //用foreach遍歷集合 { TreeNode drivesNode = new TreeNode(name); node.Nodes.Add(drivesNode); //加到我的電腦節(jié)點(diǎn)下 }
Dim strPath As String = Server.MapPath("xxx/xxx.xxx") '這里是你的文件路徑以及名稱后綴名,使用相對(duì)路徑即可,不過記得路徑最好是英文,用中文是否連接不到我就不知道了,記得是"/"哦! Page.Response.Clear() Page.Response.AddHeader("Content-Type", "text/xml") Page.Response.AddHeader("Content-Disposition", "attachment;filename=") Page.Response.WriteFile(strPath) Page.Response.End() 路徑的話你可以使用變量的 所以這樣一來需要下載的文件就會(huì)相當(dāng)靈活 順便附送一個(gè)刪除文件的方法 System.IO.File.Delete(Server.MapPath("xxx/xxx.xxx")) 不過刪除文件跟寫文件是一樣的 需要WEB服務(wù)器開啟可寫功能!、 好用的話記得給分哦 嘿嘿!