溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET如何實現(xiàn)在下載文件時對其重命名

發(fā)布時間:2021-10-13 10:04:47 來源:億速云 閱讀:141 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關ASP.NET如何實現(xiàn)在下載文件時對其重命名,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

有些時候為了保證文件再上傳時不會覆蓋掉之前上傳的文件,同時由于上傳的目標目錄里的文件可能很多,這個時候一個一個查是不太好的事情,所以這里可以自動生成GUID使文件名重命名成GUID_原來的名稱.擴展名。但是在下載的時候最好可能保證恢復到原來的名稱。這個時候聽傷神的。搜了一下相關資料后得知可使用response來解決。具體代碼如下。

<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 方法只刪除響應正文 
                //而不刪除響應標題??梢杂迷摲椒ㄌ幚礤e誤情況。 
                Response.ClearHeaders(); 
                Response.Buffer = false;//這句話的意思就是指明輸出頁面是否被緩沖,當屬性值為True時, 
                //服務器將不會向客戶端發(fā)送任何信息,直到所有程序執(zhí)行完或者遇到  
                //Response.Flush或Response.End語句,才會釋放緩沖區(qū)的信息。 
                string filename = Path.GetFileName(path); 
                newfileName = newfileName + filename.Substring(filename.LastIndexOf(".")); 
                Response.Clear(); 
                Response.ClearHeaders(); 
                Response.Buffer = false; 

                newfileName = HttpUtility.UrlEncode(newfileName);// 這一步彈出下載保存的對話框,出現(xiàn)文件名亂碼,但變量中的文件名是正常的。   
                Response.AppendHeader("Content-Disposition", "attachment;filename=" + newfileName);//為用戶保存文件是顯示的名稱 
                //告訴客戶端這個響應內容的類型為attachment 你是通過Response.AppendHeader("content-type", "attachment"); 申明的。 

                Response.AppendHeader("Content-Length", fi.Length.ToString()); 
                Response.ContentType = "application/octet-stream"; 
                Response.WriteFile(newfileName);//用response來返回文件的路徑   
                Response.Flush();//清空response   
                Response.End(); 
                //Response.End(); 如果拋異常的話可使用 
                //HttpContext.Current.ApplicationInstance.CompleteRequest(); 
            } 
            else 
            { 
                Response.Write("<script langauge=javascript>alert(‘文件不存在!');</script>"); 
            }


關于“ASP.NET如何實現(xiàn)在下載文件時對其重命名”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI