我想查看天气HttpPostedFileBase文件是否为docx,以防它是docx我需要读取内部数据或内容并将其保存到字符串变量中
这是我的代码
form action="/Sample/upload" method="post" enctype="multipart/form-data">
<label for="photo">Photo:</label>
<input type="file" name="file" id="file" />
<input type="submit" value="Upload" />
[HttpPost]
public void Upload()
{
HttpPostedFileBase file = Request.Files["file"];
if(file == docx ) {
//convert inner data to string
} else {
// whatever
}
}
答案 0 :(得分:1)
您可以使用ContentType
的{{1}}属性来获取MIME类型。
HttpPostedFileBase
如何阅读private const string _docxMime = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
[HttpPost]
public ActionResult Upload()
{
HttpPostedFileBase file = Request.Files["file"];
if (postedFile.ContentType.ToLower() == docxMime) {
// Read docx
} else {
return RedirectToAction("Index"); // or something else
}
}
文件 - 您不能简单地将其作为字符串阅读。您需要使用Microsoft Office Interop (MSDN)或OpenXML (MSDN)。这个问题has been already answered at StackOverflow。
顺便说一句,您的方法不应该是.docx
,因为您正在使用ASP.NET MVC
它应该是void
。
答案 1 :(得分:0)
您需要检查文件的扩展名:
string extension = Path.GetExtension(Request.Files[0].FileName).ToLower();
if (extension == ".docx")
{
//do your things
}
要阅读docx的内部数据,我认为您需要上传,获取内容并删除上传的文件。