0
private void ZipExtract(string zipfilename)
{
    var path = Server.MapPath(@"~/Files");
    ZipFile zip = ZipFile.Read(zipfilename);
    zip.ExtractSelectedEntries("name=*.jpg,*.jpeg,*.png,*.gif,*.bmp", " ", path,ExtractExistingFileAction.OverwriteSilently);
}


[HttpPost]
public ContentResult Uploadify(HttpPostedFileBase filedata)
{
    var path = Server.MapPath(@"~/Files");
    var filePath = Path.Combine(path, filedata.FileName);
    if (filedata.FileName.Contains(".zip"))
    {
        ZipExtract(filedata.FileName);
    }
    filedata.SaveAs(filePath);
}
4

1 回答 1

0

你看到什么错误?例外?其他条件?您需要为您的问题添加一些额外的上下文。但是,即使没有更好的描述,也有一些事情很突出。

  1. 在 ZipFile 类中使用 using() 子句;它是 IDisposable。

  2. 看起来您在调用 .SaveAs() 之前尝试提取 zip 文件。如果我正确阅读了您的代码,则意味着 ZipFile.Read() 正在尝试读取尚未创建的文件。如果是这种情况,它会抛出一个FileNotFoundException. 我可能错了;您提供的更多文字将有助于澄清。

于 2011-02-16T16:45:49.160 回答