ASP.NET 在下載文件時(shí)對(duì)其重命名的思路及實(shí)現(xiàn)方法
[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)題??梢杂迷摲椒ㄌ幚礤e(cuò)誤情況。
Response.ClearHeaders();
Response.Buffer = false;//這句話的意思就是指明輸出頁(yè)面是否被緩沖,當(dāng)屬性值為T(mén)rue時(shí),
//服務(wù)器將不會(huì)向客戶(hù)端發(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);//為用戶(hù)保存文件是顯示的名稱(chēng)
//告訴客戶(hù)端這個(gè)響應(yīng)內(nèi)容的類(lè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>
- Asp.net實(shí)現(xiàn)MVC處理文件的上傳下載功能實(shí)例教程
- ASP.NET Core實(shí)現(xiàn)文件上傳和下載
- ASP.NET?Core實(shí)現(xiàn)動(dòng)態(tài)獲取文件并下載
- asp.net實(shí)現(xiàn)多個(gè)文件同時(shí)下載功能
- ASP.NET實(shí)現(xiàn)從服務(wù)器下載文件問(wèn)題處理
- asp.net實(shí)現(xiàn)服務(wù)器文件下載到本地的方法
- ASP.Net下載大文件的實(shí)現(xiàn)方法
- asp.net中文件下載功能的實(shí)例代碼
- 在ASP.NET中下載文件的實(shí)現(xiàn)代碼
- asp.net 文件下載實(shí)現(xiàn)代碼
- ASP.NET MVC實(shí)現(xiàn)文件下載
相關(guān)文章
c# 讀取Northwind數(shù)據(jù)庫(kù)image字段
我在寫(xiě)一個(gè)三層結(jié)構(gòu)Demo時(shí),使用了Northwind這個(gè)范例數(shù)據(jù)庫(kù)。但是奇怪的是,讀取Categories表的Picture列(image類(lèi)型)無(wú)法在image控件中正常顯示(解決方案在后面代碼中可以看到)。2009-03-03
Linux服務(wù)器下利用Docker部署.net Core項(xiàng)目的全過(guò)程
這篇文章主要給大家介紹了關(guān)于在Linux服務(wù)器下利用Docker部署.net Core項(xiàng)目的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.net Core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
深入Lumisoft.NET組件開(kāi)發(fā)碰到亂碼等問(wèn)題的解決方法
本篇文章介紹了,在Lumisoft.NET組件開(kāi)發(fā)中碰到亂碼等一些問(wèn)題的解決方法。需要的朋友參考下2013-05-05
ASP.NET 網(wǎng)站開(kāi)發(fā)中常用到的廣告效果代碼
在ASP.NET項(xiàng)目開(kāi)發(fā)中,會(huì)被要求添加廣告,有翻屏效果、有廣告輪流顯示、飄浮廣告、左側(cè)廣告、右側(cè)廣告等。2010-04-04
VB.NET 中刪除DataGridView中所選行的小例子
之前為這個(gè)刪除所選行還費(fèi)了點(diǎn)腦筋,因?yàn)槊縍emoveat一行之后,后面的行會(huì)自動(dòng)縮進(jìn),而且會(huì)自動(dòng)選中下一行,很麻煩,后來(lái)發(fā)現(xiàn)很簡(jiǎn)單:2013-04-04
Asp.net 無(wú)限級(jí)分類(lèi)實(shí)例代碼
近期做的一個(gè)網(wǎng)站需要一個(gè)無(wú)限級(jí)下拉列表的無(wú)限級(jí)分級(jí)功能,于是就有了下面的小作品。 開(kāi)始以為無(wú)限級(jí)下拉列表功能應(yīng)該很簡(jiǎn)單,無(wú)非就是用一個(gè)遞歸算法就好啦,但是在做起來(lái)的時(shí)候卻會(huì)遇到一些比較模糊的東西。2008-07-07
Asp.net開(kāi)發(fā)常用的51個(gè)非常實(shí)用的代碼
Asp.net開(kāi)發(fā)常用的51個(gè)非常實(shí)用的代碼,需要的朋友可以參考下。2010-06-06
ASP.NET SignaiR 實(shí)現(xiàn)消息的即時(shí)推送,并使用Push.js實(shí)現(xiàn)通知的示例代碼
ASP.NET SignalR 是為 ASP.NET 開(kāi)發(fā)人員提供的一個(gè)庫(kù),可以簡(jiǎn)化開(kāi)發(fā)人員將實(shí)時(shí) Web 功能添加到應(yīng)用程序的過(guò)程。有興趣的可以了解一下。2017-01-01
.NET6+Quartz實(shí)現(xiàn)定時(shí)任務(wù)的示例詳解
在實(shí)際工作中,經(jīng)常會(huì)有一些需要定時(shí)操作的業(yè)務(wù),如:定時(shí)發(fā)郵件,定時(shí)統(tǒng)計(jì)信息等,那么如何實(shí)現(xiàn)才能使得我們的項(xiàng)目整齊劃一呢?本文通過(guò)一些簡(jiǎn)單的小例子,簡(jiǎn)述在.Net6+Quartz實(shí)現(xiàn)定時(shí)任務(wù)的一些基本操作,如有不足之處,還請(qǐng)指正2023-03-03
從外部的js文件中獲取ASPX頁(yè)面的控件ClientID
從外部的js文件中獲取ASPX頁(yè)面的控件ClientID(get control reference from external javascript)2009-02-02

