ここでは、グリッド クリックの行コマンド イベントを使用して word/doc ファイルをダウンロードし、メソッド downloadresume を記述します。この方法は、IE の Internet Explorer を除くすべてのブラウザで正常に機能し、ファイルではなく .aspx を生成します。
protected void grdCandidate_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
if (e.CommandName == "Download")
{
byte[] Attachment = null;
string Extension = string.Empty;
ClsCandidateManager objCandidateManager = new ClsCandidateManager();
Attachment = objCandidateManager.GetCandidateAttachment(Convert.ToInt32(e.CommandArgument), out Extension);
DownloadAttachment("Resume", Attachment, Extension);
}
}
catch (Exception ex)
{
string str = ex.Message + ex.InnerException;
}
}
public void DownloadAttachment(string strFileName, byte[] Attachment, string Extension)
{
if (Attachment != null && Attachment.Length > 0)
{
Page.Response.Clear();
Page.Response.Buffer = true;
Page.Response.Charset = "";
if (Extension == ".pdf")
{
Page.Response.ContentType = "application/pdf";
}
else
{
Page.Response.ContentType = "application/vsd-msword";
}
Page.Response.AddHeader("content-disposition", "attachment;filename=" + strFileName + Extension);
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Page.Response.BinaryWrite(Attachment);
Page.Response.Flush();
//Response.End();
}
else
{
ScriptManager.RegisterStartupScript(this, GetType(), "Attachment", "alert('Attachment not found!');", true);
}
}