регулярное выражение для проверки типа содержимого файла .doc или нет? - PullRequest
4 голосов
/ 15 апреля 2010

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

private bool IsImage(HttpPostedFile file)
    {
        if (file != null && Regex.IsMatch(file.ContentType, "image/\\S+") &&
          file.ContentLength > 0)
        {
            return true;
        }
        return false;
    }

Это возвращает мой файл как изображение или нет ... Как проверить, является ли это документ в формате (.doc / .docx) или нет с помощью c # ...

Ответы [ 5 ]

6 голосов
/ 15 апреля 2010

MIME-тип DOC:

  • приложение / msword [официальный]
  • Приложение / документ
  • заявл / текст
  • применение / vnd.msword
  • Приложение / vnd.ms слово
  • применение / WinWord
  • применение / слово
  • применение / х-msw6
  • применение / х-MSWord

счастливое регулярное выражение

Редактировать: Согласно @Dan Diplo, вы также должны проверить MIMEtypes .docx

3 голосов
/ 15 апреля 2010

Например, используя ответ Axarydax: (поэтому без проверки dimx mime)

List<String> wordMimeTypes = new List<String>();
wordMimeTypes.Add("application/msword");
wordMimeTypes.Add("application/doc");
wordMimeTypes.Add("appl/text");
wordMimeTypes.Add("application/vnd.msword");
wordMimeTypes.Add("application/vnd.ms-word");
wordMimeTypes.Add("application/winword");
wordMimeTypes.Add("application/word");
wordMimeTypes.Add("application/x-msw6");
wordMimeTypes.Add("application/x-msword");
//etc...etc...

if (wordMimeTypes.Contains(file.ContentType))
{
    //word document
}
else
{
    //not a word document
}

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

1 голос
/ 15 апреля 2010

если тип содержимого известен (см. Ответ Axarydax), зачем вам использовать регулярное выражение?

0 голосов
/ 15 апреля 2010

Гамбо прав, может быть, проще проверить расширение файла.

Path.GetExtension(file.FileName)
0 голосов
/ 15 апреля 2010

Взгляните на regexblid Библиотека с регулярным выражением.

Также полезно знать, regexbuddy может использоваться для проверки и проверки регулярных выражений.

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