台灣最大程式設計社群網站
線上人數
1388
 
會員總數:246139
討論主題:189723
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 檔名#上載IIS SERVER 發生找不到檔案
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
檔名#上載IIS SERVER 發生找不到檔案
價值 : 100 QP  點閱數:185 回應數:3
樓主

小裕
初學者
137 218
3430 417
發送站內信


https://blog.miniasp.com/post/2011/07/08/Avoid-some-Bad-Characters-to-Use-in-Web-based-Filenames
通常大家是如何解決user檔名有包含#這個特殊字元的?





搜尋相關Tags的文章: [ 檔名問題 ] ,
本篇文章發表於2020-09-07 16:49
1樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
先反過來問
為什麼要允許使用者上傳的檔案名稱有特別的字元?

小喵自己是,無論使用者上傳的檔名是什麼,我一律會改檔名成為程式要看的檔名
也會跟使用者說明,上傳如果有問題,最好把檔名改為英數,甚至連中文都不要

但是可以讓上傳檔案的使用者輸入希望未來下載後的檔名
我再透過Stream,並指定檔名讓下載的使用者下載

^.^a
本篇文章回覆於2020-09-07 18:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

MIS2000 Lab
檢舉此回應
修改上傳檔的 "檔名",也是一種安全保障

假設對方上傳一個檔案 123.jpg或是你忘了防範,讓他上傳可執行的程式檔
惡意的對方知道 "檔名",可以直接呼叫他、執行他.....

如果一律改成「年月日時分秒毫秒」替代檔名
對方如果有什麼壞心眼,我們可以多一分小小保障
本篇文章回覆於2020-09-07 20:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小裕
檢舉此回應
後來我是編碼成
年月日時分秒@+檔名
然後上載時將#改用_取代,
防止特殊字元無法開啟問題


string Filename = Get_File_Name(postedFile.FileName);
//將特殊自元#,更改成_
var replacement = Filename.Replace('#', '_');
postedFile.SaveAs(Server.MapPath("~/dco/") + replacement);
本篇文章回覆於2020-09-14 08:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.