.NET 6 文件打包下载:使用 FileStreamResult 和 ZipFile
在\u0020.NET\u00206\u0020中,可以使用\u0020FileStreamResult\u0020和\u0020ZipFile\u0020类来实现文件打包下载。\n\n首先,需要引入以下命名空间:\ncsharp\nusing\u0020System.IO;\nusing\u0020System.IO.Compression;\nusing\u0020Microsoft.AspNetCore.Mvc;\n\n\n然后,可以创建一个控制器方法来处理文件打包下载的请求:\ncsharp\n[HttpGet]\npublic\u0020IActionResult\u0020DownloadFiles()\n{\n\t//\u0020假设要打包下载的文件存放在一个文件夹中\n\tstring\u0020folderPath\u0020=\u0020"path\to\folder";\n\n\t//\u0020生成一个临时文件,用于存放打包后的文件\n\tstring\u0020tempFilePath\u0020=\u0020Path.GetTempFileName();\n\n\t//\u0020创建一个空的\u0020ZIP\u0020文件\n\tZipFile.CreateFromDirectory(folderPath, tempFilePath);\n\n\t//\u0020使用\u0020FileStreamResult\u0020返回打包后的文件\n\treturn\u0020new\u0020FileStreamResult(new\u0020FileStream(tempFilePath, FileMode.Open), "application/zip")\n\t{\n\t FileDownloadName\u0020=\u0020"files.zip"\u0020//\u0020下载文件的名称\n\t};\n}\n\n\n在上述示例中,首先指定了要打包的文件夹路径\u0020folderPath,然后使用\u0020ZipFile.CreateFromDirectory\u0020方法将该文件夹打包为一个\u0020ZIP\u0020文件,并将其保存到临时文件\u0020tempFilePath\u0020中。\n\n接下来,使用\u0020FileStreamResult\u0020将临时文件作为流返回给客户端,并设置\u0020FileDownloadName\u0020属性来指定下载文件的名称和文件类型。\n\n最后,将该方法添加到适当的控制器中,并通过访问该控制器的路由来触发文件打包下载。\n\n请注意,这只是一个简单的示例,假设文件夹中的所有文件都将被打包。如果需要更复杂的逻辑来选择要打包的文件或文件夹,可以根据需求进行修改。
原文地址: https://www.cveoy.top/t/topic/p4gD 著作权归作者所有。请勿转载和采集!