提问人:Saidvali 提问时间:11/14/2023 最后编辑:Saidvali 更新时间:11/14/2023 访问量:45
如何使用 memorystream 和 web api 返回 xml 文件
How to return xml file using memorystream and web api
问:
我有 WebApp(使用 WCF),它是 C# 应用程序的后端和 JS 中的前端。我需要创建Web服务,它将从Oracle数据库读取数据,并基于这些数据创建XML文件。需要将文件保存到 MemoryStream 并在前端使用 ajax (js) 下载此 XML 文件。
如果有人理解我需要做什么,请分享代码示例或有用的信息链接。 如果我不能解释清楚,请问我更多细节,我可以分享。
答:
0赞
Daevin
11/14/2023
#1
在 StackOverflow 上,您应该提供您尝试过的代码示例,以便我们可以帮助调试问题,而不是为您编写代码。话虽如此,这里有一个起点给你:
可以从 WebAPI 控制器返回一个对象,该对象返回:FileContentResult
ActionResult
return File(byte[] fileContents, string contentType, string? fileDownloadName);
要构建 XML 文件,您应该能够轻松地自己使用 a 或其他东西解析一个简单的文件。如果您需要更复杂的东西,请查看 Microsoft 的 DocumentFormat.OpenXml NuGet 包(尽管我只使用它来构建 .xlsx 文件),并注意您应该能够在创建文档时使用 a。从该内存流中,可以在 WebAPI 终结点中获取返回对象所需的内容。StringBuilder
MemoryStream
byte[]
FileContentResult
至于使用 Ajax 查询来获取下载......查看 此处 和 此处 有关如何处理通过 JavaScript 下载文件的建议,并选择您喜欢的选项。
评论
1赞
Charlieface
11/14/2023
但是为什么不直接使用 a 和 pass 流呢?该函数也可以执行相同的操作。FileStreamResult
File
0赞
Daevin
11/14/2023
@Charlieface因为我这么说,所以才知道。不过说真的,是的,那会更好。我最近刚刚将某些内容转换为我发布的方法,所以这就是我想到的;现在可能不得不重新审视一下,哈哈。
评论