我有一个 ASP.NET Web Forms 应用程序。用户点击下载链接后,我需要动态创建多个 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的答案
答案 0 :(得分:2)
您可以使用CodeFluent实体运行时客户端程序包的ZipFile类: Link here
此库仅允许使用流,这意味着您没有在文件系统上创建临时文件。
答案 1 :(得分:2)
如果您愿意,可以使用.net GZip或Deflate流,并可以开发自己的解决方案或更好的选择是使用SharpZip .net Library,这是托管代码。