.net core Compression使用ZipArchive创建压缩包出现Unexpected end of data错误

简介使用.net core中Compression ZipArchive创建zip打包下载遇到了Unexpected end of data(文件末端错误)错误,找了下解决方案,记录下。

使用之前分享过的方式实现.net core压缩zip下载,遇到一个奇怪的问题,通过7zip检查压缩包,出现Unexpected end of data(文件末端错误)错误。通过一番查询解决了这个问题,但是没有想明白是什么原因。

之前分享过的实现代码:https://1023.org.cn/p/e0d7dd7580

.net core 压缩 zip 打包下载代码:

public FileResult Download()
{
    var ms = new MemoryStream();
    var zip = new ZipArchive(ms, ZipArchiveMode.Create);
    var entry = zip.CreateEntry("Readme.txt");  // 压缩包内文件名
    using var entryStream = entry.Open();
    using var fs = new FileStream(@"C:\测试.txt", FileMode.Open); // 要压缩的文件路径,也可用内存流代替
    fs.CopyTo(entryStream);
    entryStream.Close();
    zip.Dispose();
    var fileBytes = ms.ToArray();
    return File(fileBytes, MediaTypeNames.Application.Zip, "DownloadName");
}

本站发布的文章受知识共享协议保护,转载、收录请标明出处。

评论


昵称:   邮箱:

Top
An error has occurred. This application may no longer respond until reloaded.Reload 🗙