2012-03-24 89 views
1

我想從服務器下載文件。下載時我想更改文件名。 但是,當文件名包含空格時,我無法完全更改文件名。ASP.NET - 文件名包含空格時下載文件

我的代碼如下

Response.AddHeader("content-disposition", "attachment; filename=" + fileName); 

這可讓用戶將文件保存到自己的電腦。 但是,當我保存文件時,只保存文件名的第一個單詞。

例如。我想給文件名稱(「CCNA Q & A.pdf」),但文件另存爲(「CCNA」)

我想知道如何使用空格保存文件名。

回答

0

你試過Server.UrlEncode()嗎? 或者,您可以省略所有非字母字符('', - 等),whith _-s(正則表達式替換)。


Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); 
+0

我試圖httputility.urlencode。它保存了所有的文件名和擴展名,但是把+放在空格中,並且在&(CCNA Q&A.pdf)中的%26就像(CCNA + Q%26A.pdf)。無論如何節省空間? – user1289926 2012-03-24 13:20:29

+0

我編輯了我的解決方案。 – 2012-03-24 13:32:10

+0

我不知道爲什麼,但我不明白。 – user1289926 2012-03-26 15:20:07

0
在Firefox

Server.UrlEncode()將與%20 替代空間只是把雙引號之間的文件名filename = "\"" + filename + "\"";

0

我有我試圖下載有空格的文本文件同樣的問題以其名義。我已經使用UrlDecode函數解決了這個問題。當瀏覽器將空格轉換爲'+'符號時,使用解碼功能需要將這些'+'轉換爲空格。

fileName = Server.UrlDecode(fileName); 
Response.AddHeader("content-disposition", "attachment; filename=\"" + fileName + "\""); 
0

你必須把它包在附加報價:

Response.AddHeader("content-disposition", "attachment; filename=\"" + fileName + "\""); 
相關問題