[csharp]
代碼如下:
<pre name="code" class="csharp">string path = Server.MapPath("aa\\ahaakladahsasdas_bb.zip");
string newfileName = "";
if (File.Exists(path))
{
FileInfo fi = new FileInfo(path);
Response.Clear();//Clear 方法刪除緩沖區(qū)中的所有 HTML 輸出。但 Clear 方法只刪除響應(yīng)正文
//而不刪除響應(yīng)標(biāo)題。可以用該方法處理錯(cuò)誤情況。
Response.ClearHeaders();
Response.Buffer = false;//這句話的意思就是指明輸出頁(yè)面是否被緩沖,當(dāng)屬性值為True時(shí),
//服務(wù)器將不會(huì)向客戶端發(fā)送任何信息,直到所有程序執(zhí)行完或者遇到
//Response.Flush或Response.End語(yǔ)句,才會(huì)釋放緩沖區(qū)的信息。
string filename = Path.GetFileName(path);
newfileName = newfileName + filename.Substring(filename.LastIndexOf("."));
Response.Clear();
Response.ClearHeaders();
Response.Buffer = false;
newfileName = HttpUtility.UrlEncode(newfileName);// 這一步彈出下載保存的對(duì)話框,出現(xiàn)文件名亂碼,但變量中的文件名是正常的。
Response.AppendHeader("Content-Disposition", "attachment;filename=" + newfileName);//為用戶保存文件是顯示的名稱
//告訴客戶端這個(gè)響應(yīng)內(nèi)容的類型為attachment 你是通過(guò)Response.AppendHeader("content-type", "attachment"); 申明的。
Response.AppendHeader("Content-Length", fi.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(newfileName);//用response來(lái)返回文件的路徑
Response.Flush();//清空response
Response.End();
//Response.End(); 如果拋異常的話可使用
//HttpContext.Current.ApplicationInstance.CompleteRequest();
}
else
{
Response.Write("<script langauge=javascript>alert(‘文件不存在!');</script>");
}
</pre><br>
<br>
<pre></pre>
<p></p>
<pre></pre>
<p></p>
<pre></pre>
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com