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ランタイムクライアントパッケージのZipFileクラスを使用できます: ここにリンク

このライブラリでは、ストリームのみを使用できます。つまり、ファイルシステムに一時ファイルを作成する必要はありません。

于 2012-09-06T09:28:48.317 に答える
2

必要に応じて、.net GZip または Deflate ストリームを使用して、独自のソリューションを開発できます。より良いオプションは、管理されたコードを持つSharpZip .net Libraryを使用することです。

于 2012-09-06T09:33:23.597 に答える