这个问题可能是由于文件打包过程中出现了一些错误导致的。下面是一个使用FileStreamResult和ZipFile实现文件打包下载的示例代码:

public IActionResult DownloadFiles()
{
    // 创建一个临时文件夹用于存放要打包的文件
    string tempFolder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
    Directory.CreateDirectory(tempFolder);

    // 将要打包的文件复制到临时文件夹中
    string[] filesToPack = new string[]
    {
        "D:\\EdgeDown\\7月税务信息1.txt",
        "D:\\EdgeDown\\7月税务信息2.txt",
        "D:\\EdgeDown\\7月税务信息3.txt"
    };

    foreach (string fileToPack in filesToPack)
    {
        string destinationFile = Path.Combine(tempFolder, Path.GetFileName(fileToPack));
        System.IO.File.Copy(fileToPack, destinationFile);
    }

    // 创建压缩包文件路径
    string zipFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".zip");

    // 使用ZipFile类将文件打包成压缩包
    ZipFile.CreateFromDirectory(tempFolder, zipFilePath);

    // 删除临时文件夹
    Directory.Delete(tempFolder, true);

    // 使用FileStreamResult返回压缩包文件
    FileStream fileStream = new FileStream(zipFilePath, FileMode.Open);
    FileStreamResult result = new FileStreamResult(fileStream, "application/octet-stream");
    result.FileDownloadName = "7月税务信息.zip";

    return result;
}

请确保在使用此代码之前,D:\EdgeDown\7月税务信息1.txtD:\EdgeDown\7月税务信息2.txtD:\EdgeDown\7月税务信息3.txt这三个文件都存在。然后调用DownloadFiles方法,会返回一个打包好的压缩包文件供下载。

如果在打开下载下来的压缩包时仍然报错,请尝试重新下载,并确保下载的文件完整。如果问题仍然存在,可能是由于文件本身存在问题导致的

net 6 使用FileStreamResult和ZipFile实现文件打包下载 下载下来的压缩包打开报错 —! DEdgeDown7月税务信息zip 不可预料的压缩文件末端

原文地址: https://www.cveoy.top/t/topic/imm9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录