我正在使用ASP.NEt MVC。我想上传.zip文件,我在我的视图上使用html输入文件上传控件。 我只想上传.zip文件。 我想检查一下我的.zip只包含两个文件 - 两个文件都有扩展名.txt,其中一个文件名为“start”。 任何人都可以建议我如何检查这个?我们怎样才能确保上传的.zip真的是一个压缩文件夹而不是任何其他只有.zip扩展名的文件。 我们可以使用HttpPostedFileBase.ContentType吗?
提前谢谢, KAPS答案 0 :(得分:0)
ContentType
只是由客户端浏览器填写,因此您无法真正信任它。唯一的方法是尝试&解析服务器上的文件:使用SharpZipLib之类的东西打开.zip文件并确认其中有两个文件。
答案 1 :(得分:0)
您可以使用DotNetZip来确定文件是否为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
}
}
OR
[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
}
}
确保包含名称空间using Ionic.Zip;
并添加对该dll的引用。
希望这有帮助