ユーザーがいくつかのファイルをzipファイルとしてダウンロードできるようにするasp.netWebサイトの機能に取り組んでいます。DotNetZipライブラリを使用してzipファイルを生成しています。
私のコードは次のようになります:
protected void OkbtnZipExport_OnClickEvent(object sender, EventArgs e)
{
var selectedDocumentIds = GetSelectedDocIds();
string archiveName = String.Format("archive-{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
AddResponseDataForZipFile(Response, archiveName);
try
{
string errorMessage = Utils.ExportToZip(selectedDocumentIds, arkivdelSearchControl.GetbraArkivConnection(), Response.OutputStream);
if (!string.IsNullOrEmpty(errorMessage))
{
LiteralExportStatus.Text = errorMessage;
}
else
LiteralExportStatus.Text = "Success";
}
catch (Exception ex)
{
LiteralExportStatus.Text = "Failure " + ex.Message;
}
Response.Flush();
Response.Close();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
private void AddResponseDataForZipFile(HttpResponse response, string zipName)
{
Response.Clear();
Response.BufferOutput = false;
Response.ContentType = "application/x-zip-compressed";
Response.AddHeader("content-disposition", "attachment; filename=" + zipName);
Response.AddHeader("Expires", "0");
Response.AddHeader("Content-Description", "Zip Arcive");
}
ここで、Utils.ExportToZipメソッドが失敗した場合など、問題が発生した場合は、ダウンロードダイアログではなく、ユーザーにエラーメッセージを表示したいと思います。ダウンロード操作をキャンセルするには、Responseオブジェクトから一部のデータを削除する必要がありますか?
よろしくお願いします
OKB