net 6 使用FileStreamResult和ZipFile实现文件打包下载 下载下来的压缩包打开报错 —! DEdgeDown7月税务信息zip 不可预料的压缩文件末端
这个问题可能是由于文件打包过程中出现了一些错误导致的。下面是一个使用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.txt、D:\EdgeDown\7月税务信息2.txt和D:\EdgeDown\7月税务信息3.txt这三个文件都存在。然后调用DownloadFiles方法,会返回一个打包好的压缩包文件供下载。
如果在打开下载下来的压缩包时仍然报错,请尝试重新下载,并确保下载的文件完整。如果问题仍然存在,可能是由于文件本身存在问题导致的
原文地址: https://www.cveoy.top/t/topic/imm9 著作权归作者所有。请勿转载和采集!