0

我有一个ASP.NET Web 窗体应用程序。一旦用户单击下载链接,我需要即时创建几个XML文件,压缩它们并通过下载对话框提示用户。

我已经制作了下载单个 XML 文件的功能,它可以正常工作。download.aspx文件中的链接是:

<asp:HyperLink ID="hlDownload" Text="Download" NavigateUrl='<%# String.Format("GetFile.aspx?LicenseGuid={0}", Eval("ProductId")) %>' runat="server"></asp:HyperLink>

GetFile.aspx代码后面的函数:

Dim xmlFile = _productServices.GetXMLFilePerProductId(ProductId)
Dim xdoc As XmlDocument = New XmlDocument()
xdoc.LoadXml(xmlFile)

Response.Clear()
Response.ContentType = "text/xml"
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.AddHeader("Content-Disposition", "attachment; filename=some_name.xml")

xdoc.Save(Response.Output)
Response.End()

如何动态创建一个 ZIP 文件并打包几个 XML 文件,这些文件也是动态创建的?

PS:欢迎使用 C# 和 VB.NET 的答案

4

2 回答 2

2

您可以使用 CodeFluent Entities Runtime Client 包的 ZipFile 类: 链接在这里

该库仅允许使用流,这意味着您没有在文件系统上创建临时文件。

于 2012-09-06T09:28:48.317 回答
2

如果您愿意,可以使用 .net GZip 或 Deflate 流,并可以开发自己的解决方案,或者更好的选择是使用托管代码的SharpZip .net 库

于 2012-09-06T09:33:23.597 回答