Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Валидация имени файла для FileUpload на клиенте


Автор: TeRiX 19.4.2007, 18:48
Может кто-нибудь знает, как можно проверить с помощью java-скрипта имя файла для контрола FileUpload, т.е. действительно ли там имя файла, либо просто белеберду ввели. Просто для IE в случае, если введены любые символы, не начинающиеся с, к примеру, с D:\ , по нажатию на кнопку загрузить ничего не происходит (никакого обращения к серверу), а хотелось бы проверить и выдать соотв. сообщение. 

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

Автор: Vit 19.4.2007, 20:35
Никак, это ограничение JS и HTML, как я понимаю сделано для того чтоб нельзя было автоматом чего-нибудь утащить у тебя с компа.

Автор: Mymik 20.4.2007, 09:23
TeRiX, Проверить реально ли существует файл -- нельзя. Проверить с чего начинается путь -- можно
Код

<asp:RegularExpressionValidator ID="revFileValidator" ControlToValidate="fuFile" ErrorMessage="Wrong Path" ValidationExpression="^[\S]:\\" runat="server" />
<asp:FileUpload ID="fuFile" runat="server" />

^[\S]:\\ строка должна начинаться с буквенного символа, после чего должен идти "двоеточие" и после этого знак "\"(обратный слеш). Однако, это ни есть очень хорошая идея. Я как пользователь Windows не знаю как адресуются данные в других операционных системах. А вдруг у них там Имя логического диска состоит не из одного символа, а как в windows метки. Т.е. лучше этого не делать. Лучше на стороне сервера просто проверить содержимое файла, а точнее не равен ли он null.

Автор: Vit 20.4.2007, 15:23
Цитата(Mymik @  20.4.2007,  00:23 Найти цитируемый пост)
Я как пользователь Windows не знаю как адресуются данные в других операционных системах. А вдруг у них там Имя логического диска состоит не из одного символа, а как в windows метки. Т.е. лучше этого не делать. Лучше на стороне сервера просто проверить содержимое файла, а точнее не равен ли он null. 



В линухе вообще нет логических дисков и одних букв, там всё примонтировано через device и любое имя может начинаться с очень многого - полный там путь прописан или какой-то тип линков, коих несколько. В PDA и того сложнее будет или на смартфонах/телефонах... И косые чёрточки там в другую сторону... А кроме того прийдётся ознакомиться как имена файлов пишутся под OS/2, MacOS, BeOS, Lindows... и каким-то образом предугадать как эти имена будут выглядеть на операционках, которые ещё не разработаны... 

Автор: Mymik 20.4.2007, 21:36
Vit, Вот потому я и написал, что теоретически это возможно, но практически это будет нецелесообразно. :о) просто нехватало знаний других ОС для развернутого ответа

Автор: Vit 20.4.2007, 21:42
Цитата(Mymik @  20.4.2007,  12:36 Найти цитируемый пост)
Vit, Вот потому я и написал, что теоретически это возможно, но практически это будет нецелесообразно. :о) просто нехватало знаний других ОС для развернутого ответа 



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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)