ACP
ACP

Reputation: 35268

regular expression to check file content type is .doc or not?

When i use a file upload i use to check file contenttype with regular expressions... For ex

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

This returns my file is an image or not... How to check it is a word(.doc/.docx) document or not using c#...

Upvotes: 4

Views: 3195

Answers (5)

sidney.andrews
sidney.andrews

Reputation: 5256

Gumbo is right, it might just be easier to check the file's extension.

Path.GetExtension(file.FileName)

Upvotes: 0

RvdK
RvdK

Reputation: 19790

For example using Axarydax answer: (so no docx mime check)

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
}

More readable than Regex because regex will become a pain in the ass when trying to make a expression for a dozen of mime types

Upvotes: 4

Axarydax
Axarydax

Reputation: 16603

DOC's mimetype is:

  • application/msword [official]
  • application/doc
  • appl/text
  • application/vnd.msword
  • application/vnd.ms-word
  • application/winword
  • application/word
  • application/x-msw6
  • application/x-msword

happy regex'ing

Edit:According to @Dan Diplo, you should also check for .docx's MIMEtypes

Upvotes: 6

Pawel Lesnikowski
Pawel Lesnikowski

Reputation: 6381

if the content-type's are known (see Axarydax answer), why would you want to use regex?

Upvotes: 1

Rob
Rob

Reputation: 6871

Take a look at regexblid A library with regular expression.

Also good to know, regexbuddy can be used to validate and test regular expressions.

Upvotes: 0

Related Questions