Как отфильтровать FileUpload Control? - PullRequest
4 голосов
/ 02 июня 2011

Как добавить фильтр в элемент управления загрузкой файлов в asp.net?Я хочу фильтр для файла Oasis (.000).?

Пожалуйста, посоветуйте мне ... большое спасибо!

Ответы [ 3 ]

5 голосов
/ 02 июня 2011

Вы можете использовать RegularExpressionValidator

<asp:RegularExpressionValidator ID="rexp" runat="server" ControlToValidate="fupProduct"
     ErrorMessage="Only .gif, .jpg, .png, .tiff and .jpeg" 
     ValidationExpression="(.*\.([Gg][Ii][Ff])|.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])|.*\.([tT][iI][iI][fF])$)"></asp:RegularExpressionValidator>
4 голосов
/ 02 июня 2011

Нет элемента управления.Я думаю, что самый простой способ - проверить выбранный файл с помощью JavaScript.Например,

Функция JS:

function checkFileExtension(elem) {
        var filePath = elem.value;

        if(filePath.indexOf('.') == -1)
            return false;

        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();

        validExtensions[0] = 'jpg';
        validExtensions[1] = 'jpeg';
        validExtensions[2] = 'bmp';
        validExtensions[3] = 'png';
        validExtensions[4] = 'gif';  
        validExtensions[5] = 'tif';  
        validExtensions[6] = 'tiff';
        validExtensions[7] = 'txt';
        validExtensions[8] = 'doc';
        validExtensions[9] = 'xls';
        validExtensions[10] = 'pdf';

        for(var i = 0; i < validExtensions.length; i++) {
            if(ext == validExtensions[i])
                return true;
        }

        alert('The file extension ' + ext.toUpperCase() + ' is not allowed!');
        return false;
    }

Подключите его в page_load:

FileUpload1.Attributes.Add("onchange", "return checkFileExtension(this);")

ПРИМЕЧАНИЕ. Этот код дословно воспроизведен здесь: http://forums.asp.net/t/1156963.aspx/1?How+to+filter+files+in+file+upload+HTML+control. Я не писал и не проверял!

2 голосов
/ 02 июня 2011

Вы можете использовать javascript для фильтрации на стороне сервера.

Попробуйте это здесь

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