C# için ICSharpCode.SharpZipLib kullanarak, geçirilen dosyanın aslında geçerli bir zip dosyası olduğunu doğrulayabilir miyim (sağ tıklanan ve .zip olarak değiştirilmiş bir şey değil)?ICSharpCode.SharpZipLib zip dosyasını doğrular
[HttpPost]
public ActionResult Upload(HttpPostedFileBase fileData)
{
if (fileData != null && fileData.ContentLength > 0)
{
if (Path.GetExtension(fileData.FileName) == ".zip")
{
var zipFile = Server.MapPath("~/Content/uploads/" + Path.GetFileName(fileData.FileName));
fileData.SaveAs(zipFile);
FileStream fs = System.IO.File.OpenRead(zipFile);
ZipFile zf = new ZipFile(fs);
foreach (ZipEntry zipEntry in zf)
{
if (zipEntry.Name.EndsWith(".htm") || zipEntry.Name.EndsWith(".html"))
{
return Json(new { success = true });
}
}
fs.Close();
fs.Dispose();
System.IO.File.Delete(zipFile);
}
else
{
var fileName = Server.MapPath("~/Content/uploads/" + Path.GetFileName(fileData.FileName));
fileData.SaveAs(fileName);
return Json(new { success = true });
}
}
return Json(new { success = false });
}
Büyük, bu tam olarak aradığım şeyi ekledim. – GoldenUser
Teşekkürler, bu gerçekten temiz ve yardımsever cevap! –
bu, arşivin tamamını doğrulıyor mu? Girişlerimi numaralandırabilen ~ 1GB parola korumalı bir zip dosyasına sahibim, ancak çıkarmayı gerçekleştirdiğimde% ~ 56 oranında çöküyor. Bunu çıkarmaya başlamadan önce test edebilir miyim? – Adi