Ограничить контроль загрузки файлов, чтобы загружать только типы сертификатов в c # - PullRequest
2 голосов
/ 13 августа 2010

В веб-приложении как ограничить типы загружаемых файлов при открытии диалога загрузки файлов.Если вы используете ASP.NET & c #

Ответы [ 3 ]

2 голосов
/ 13 августа 2010

Просто подтвердите расширение файла, как я сделал для файла Excel

 string fileExtension = Path.GetExtension(fileUpload.PostedFile.FileName.ToString());
        //if (fileExtension == ".xls" || fileExtension == ".xlsx")
        if (fileExtension == ".xls")
        {
            return true;
        }
        else
        {
            return false;
        }
0 голосов
/ 13 августа 2010

Сначала используйте атрибут accept в HTML.

Затем проверьте ContentType файла.

( НЕ проверяйте имя файла, это веб, а не локальная машина, поэтому вы не знаете, как люди называют файлы, особенно в системах, отличающихся от окон в том, как они определяют файл типы, или которые имеют различные привязки между расширениями и приложениями к вашему )

Наконец, если возможно обнаружить ошибочно сообщенный файл (попытка загрузить его в соответствующий класс - например, загрузить изображение / png в растровое изображение - поиск определенных «магических чисел» файла в первых нескольких байтах, и т.д.), тогда сделайте это тоже. Подход с использованием магических чисел может быть полезен (не путайте с рекомендацией использовать константы, чтобы избежать «магических чисел» в исходном коде, имеющих различное значение), поскольку многие типы файлов должны начинаться с последовательности байтов, которая соответствует определенному шаблону. Например. если кто-то загружает случайный мусор, заявляя, что это PNG или GIF, вы можете обнаружить это, посмотрев только первые несколько байтов.

0 голосов
/ 13 августа 2010

Вы можете использовать атрибут "accept" из обычного HTML-ввода type = "file"

http://www.w3schools.com/jsref/dom_obj_fileupload.asp

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