2009-01-12 44 views
2

我們的一位客戶正在以各種可以想象的方式破壞軟件,而他剛剛發現了這個軟件。ASP.NET:FileUpload控件失敗,長文件名

如果用戶試圖上傳的文件具有非常長文件名(我認爲用戶試圖用180字符的文件名),FileUpload控件拒絕承認它在IE7。

點擊瀏覽按鈕,瀏覽到該文件,點擊它,點擊上傳按鈕,文本框應該顯示文件名是空白。任何人都知道這件事,修復等?

我設法找到它this asp.net forums discussion,但它並沒有在這個問題上灑下的光線。

該應用程序是用Visual Studio 2008編寫的,這發生在IE7中,但不是FF3或Chrome。如果我使用其他兩種瀏覽器中的任何一種,則它會正確填充FileUpload控件,但當您實際嘗試執行上載時會中斷,因爲生成的文件名/路徑太長。

享受 隨機

回答

4

這可能不是特別的ASP.NET甚至是IE7的問題。

Windows在完整路徑名(*)上的最大長度爲260個字符,並且這可以通過一些長文件名的嵌套文件夾輕鬆實現,特別是在用戶文件夾中啓動時,該文件夾已經有相當長的路徑名(例如'C:\ Documents and Settings \ Brian Popalopadopaslopalos \我的文檔'或'桌面')。

當你達到這個限制時,事情開始變得棘手。重新命名文件,移動文件夾,搜索等都以奇怪的方式開始出錯。如果瀏覽器也失敗了,並且可能沒有太多可以做的事情,這並不奇怪。

(* - 東西實際上比這更復雜一些,但仍...)

+0

我的2美分。我能夠重現與Windows 7和IE9相同的問題。我注意到該問題始於文件路徑中的256個符號。如果255,它工作正常。 – 2013-06-10 13:09:22

0

您將需要更多的測試這個問題,然後把這個看作是一個「已知問題」,給予最大你會接受的文件名的大小。

他們可以上傳這些文件到hotmail嗎? Gmail嗎?和文件上傳服務?

0

有一點進一步的測試似乎使它看起來像是在暴露IE7中的錯誤的路徑名上的260個字符限制。

我用了很長的文件名坐在我的我的文檔目錄中的測試文件(這樣的「C:\ Documents和Settings \隨機\我的文檔」)。嘗試瀏覽到此文件導致它不填寫FileUpload文本框。

我將文件移動到我的C:驅動器的根目錄,並瀏覽到該文件,它工作正常(然後崩潰時,我試圖實際上傳它,因爲路徑名已超過260個字符在服務器上,這是我使用FF3或Chrome時發生的情況)。

因此,它看起來像是一些在IE7中顯示錯誤的東西的組合。

感謝您的幫助。