这个问题可能是由于文件打包过程中出现了一些错误导致的。下面是一个使用FileStreamResult和ZipFile实现文件打包下载的示例代码:\n\ncsharp\npublic IActionResult DownloadFiles()\n{\n // 创建一个临时文件夹用于存放要打包的文件\n string tempFolder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());\n Directory.CreateDirectory(tempFolder);\n\n // 将要打包的文件复制到临时文件夹中\n string[] filesToPack = new string[]\n {\n "D:\\EdgeDown\\7月税务信息1.txt",\n "D:\\EdgeDown\\7月税务信息2.txt",\n "D:\\EdgeDown\\7月税务信息3.txt"\n };\n\n foreach (string fileToPack in filesToPack)\n {\n string destinationFile = Path.Combine(tempFolder, Path.GetFileName(fileToPack));\n System.IO.File.Copy(fileToPack, destinationFile);\n }\n\n // 创建压缩包文件路径\n string zipFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".zip");\n\n // 使用ZipFile类将文件打包成压缩包\n ZipFile.CreateFromDirectory(tempFolder, zipFilePath);\n\n // 删除临时文件夹\n Directory.Delete(tempFolder, true);\n\n // 使用FileStreamResult返回压缩包文件\n FileStream fileStream = new FileStream(zipFilePath, FileMode.Open);\n FileStreamResult result = new FileStreamResult(fileStream, "application/octet-stream");\n result.FileDownloadName = "7月税务信息.zip";\n\n return result;\n}\n\n\n请确保在使用此代码之前,D:\EdgeDown\7月税务信息1.txtD:\EdgeDown\7月税务信息2.txtD:\EdgeDown\7月税务信息3.txt这三个文件都存在。然后调用DownloadFiles方法,会返回一个打包好的压缩包文件供下载。\n\n如果在打开下载下来的压缩包时仍然报错,请尝试重新下载,并确保下载的文件完整。如果问题仍然存在,可能是由于文件本身存在问题导致的。

.NET 6 文件打包下载:使用 FileStreamResult 和 ZipFile 实现压缩包下载并解决报错问题

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

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