HttpPostedFileBase docx to C# - MVC中的字符串

时间:2015-07-03 08:50:56

标签: javascript c# html asp.net-mvc

我想查看天气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
        }

    }

2 个答案:

答案 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的内部数据,我认为您需要上传,获取内容并删除上传的文件。