当我使用文件上传时,我使用正则表达式检查文件内容类型...对于前
private bool IsImage(HttpPostedFile file)
{
if (file != null && Regex.IsMatch(file.ContentType, "image/\\S+") &&
file.ContentLength > 0)
{
return true;
}
return false;
}
这会返回我的文件是否是图片...如何检查它是一个单词(.doc / .docx)文件或不使用c#...
答案 0 :(得分:6)
DOC的mimetype是:
快乐的正则表达
编辑:根据@Dan Diplo,您还应该检查.docx的MIME类型
答案 1 :(得分:3)
例如使用Axarydax回答:(所以没有docx 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更具可读性,因为当试图为十几种mime类型创建表达式时,正则表达式会变得很痛苦
答案 2 :(得分:1)
如果内容类型是已知的(请参阅Axarydax答案),为什么要使用正则表达式?
答案 3 :(得分:0)
查看regexblid具有正则表达式的库。
另外很高兴知道,regexbuddy可用于验证和测试正则表达式。
答案 4 :(得分:0)
Gumbo是对的,检查文件的扩展名可能更容易。
Path.GetExtension(file.FileName)