Asp.net mvc 检查上传文件的内容

Asp.net mvc 检查上传文件的内容,asp.net-mvc,file-upload,Asp.net Mvc,File Upload,我正在使用ASP.NETMVC。我想上传我正在视图上使用html输入文件上传控件的.zip文件。 我只想上传.zip文件。 我想检查my.zip是否只包含两个文件-两个文件都有扩展名.txt,其中一个文件名为“start”。 有谁能告诉我怎么检查这个吗?我们如何确保上传的.zip文件确实是一个压缩的文件夹,而不是任何其他扩展名只有.zip的文件。 我们可以使用HttpPostedFileBase.ContentType吗 提前感谢,, kaps客户端浏览器只需填写ContentType,因此您不

我正在使用ASP.NETMVC。我想上传我正在视图上使用html输入文件上传控件的.zip文件。 我只想上传.zip文件。 我想检查my.zip是否只包含两个文件-两个文件都有扩展名.txt,其中一个文件名为“start”。 有谁能告诉我怎么检查这个吗?我们如何确保上传的.zip文件确实是一个压缩的文件夹,而不是任何其他扩展名只有.zip的文件。 我们可以使用HttpPostedFileBase.ContentType吗

提前感谢,,
kaps

客户端浏览器只需填写
ContentType
,因此您不能真正信任它。唯一的方法是尝试在服务器上解析文件:使用类似的方法打开.zip文件并确认其中有两个文件。

您可以使用来确定文件是否为zip文件。使用dotnetzip,您可以做更多的事情

你可以这样核实

[HttpPost]
public ActionResult Index(FormItems item, HttpPostedFileBase files)
{
            //check for zip file
            try
            {
                ZipFile.CheckZip(files.FileName); //just pass the name of the file
            }
            catch
            {
                //not a zip file
            }
            
}

确保使用Ionic.Zip包含名称空间
并添加对该dll的引用

希望这有帮助

[HttpPost]
public ActionResult Index(FormItems item, HttpPostedFileBase files)
{
            //check for zip file
            try
            {
                ZipFile.Read(files.InputStream); //read the zip contents by passing the input stream
            }
            catch
            {
                //not a zip file
            }
            
}