ASP.NET: сбой управления FileUpload с длинными именами файлов - PullRequest
2 голосов
/ 12 января 2009

Один из наших клиентов ломает программное обеспечение всеми возможными способами, и он только что обнаружил это.

Если пользователь пытается загрузить файл с очень длинным именем файла (я думаю, что пользователь пытается использовать имя файла из 180 символов), элемент управления FileUpload отказывается распознавать его в IE7.

Нажмите кнопку «Обзор», перейдите к файлу, щелкните по нему, нажмите кнопку «Загрузить», и текстовое поле, в котором должно отображаться имя файла, будет пустым. Кто-нибудь знает что-нибудь об этом, исправления и т. Д.?

Мне удалось найти это обсуждение на форуме asp.net , но оно не пролило свет на эту проблему.

Приложение написано в Visual Studio 2008, и это происходит в IE7, но не в FF3 или Chrome. Если я использую любой из двух других браузеров, он корректно заполняет элемент управления FileUpload, но прерывается, когда вы действительно пытаетесь выполнить загрузку, потому что результирующее имя файла / путь слишком длинный.

Наслаждайтесь Случайные

Ответы [ 3 ]

4 голосов
/ 12 января 2009

Это может быть не только проблема ASP.NET или даже проблема IE7.

Windows имеет ограничение в 260 символов на полные пути (*), и это может быть легко достигнуто с помощью нескольких вложенных папок с длинными именами файлов, особенно если вы начинаете в пользовательской папке, которая уже имеет довольно длинный путь ( например, «C: \ Documents and Settings \ Brian Popalopadopaslopalos \ Мои документы» или «Рабочий стол»).

Когда вы достигнете этого предела, все начнёт срываться. Переименование файлов, перемещение папок, поиск и т. Д. Начинают работать любопытными способами. Неудивительно, если браузеры также не работают, и, вероятно, вы ничего не можете с этим поделать.

(* - на самом деле все немного сложнее, но все же ...)

0 голосов
/ 13 января 2009

Небольшое дальнейшее тестирование, кажется, заставляет выглядеть не более 260 символов для имен путей, обнажающих ошибку в IE7.

Тестовый файл, который я использовал с очень длинным именем файла, находился в моей папке «Мои документы» (например, «C: \ Documents and Settings \ Random \ My Documents»). При попытке просмотра этого файла он не заполнял текстовое поле FileUpload.

Я переместил файл в корень диска C: и перешел к этому файлу, и он работал нормально (а затем потерпел крах при попытке загрузить его, потому что путь к файлу был бы больше 260 символов сервер, что случилось, если я использовал FF3 или Chrome).

Итак, похоже, что это сочетание нескольких вещей, показывающих ошибку в IE7.

Спасибо за помощь.

0 голосов
/ 12 января 2009

Вам нужно будет еще раз проверить эту проблему, а затем указать ее как «Известную проблему», указав максимальный размер файла, который вы примете.

Могут ли они загрузить эти файлы в hotmail? Gmail? и услуги загрузки файлов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...