public string GetEmailLogAttachmentsList() { #region EmailLogAttachments LPWeb.BLL.EmailLog bllEmailLog = new EmailLog(); var dt = bllEmailLog.GetEmailLogAttachments(iEmailLogID); if (dt != null && dt.Rows.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (DataRow dr in dt.Rows) { sb.Append(" <tr> "); sb.Append(" <td style=\" width:40px;\"></td>"); sb.Append(" <td><a href=\"EmailLogAttachmentsPopup.aspx?CloseDialogCodes=&EmailLogID=" + dr["EmailLogId"].ToString() + "&fileName=" + dr["Name"].ToString() + "." + dr["FileType"].ToString() + "\" target=\"_blank\" >").Append(dr["Name"].ToString()).Append(".").Append(dr["FileType"].ToString()).Append("</a></td>"); sb.Append(" </tr>"); } return(sb.ToString()); } #endregion return(string.Empty); }
protected void Page_Load(object sender, EventArgs e) { #region 校验页面参数 string sCloseDialogCodes = this.Request.QueryString["CloseDialogCodes"].ToString() + ";"; bool bIsValid = PageCommon.ValidateQueryString(this, "EmailLogID", QueryStringType.ID); if (bIsValid == false) { PageCommon.WriteJsEnd(this, "Missing required query string.", sCloseDialogCodes); } this.iEmailLogID = Convert.ToInt32(this.Request.QueryString["EmailLogID"]); #endregion #region 加载EmailLog DataTable EmailLogList = this.GetEmailLogInfo(this.iEmailLogID); if (EmailLogList.Rows.Count == 0) { PageCommon.WriteJsEnd(this, "Invalid Email Log ID.", sCloseDialogCodes); } string sChainId = EmailLogList.Rows[0]["ChainId"].ToString(); EmailLog_FileId = EmailLogList.Rows[0]["FileId"].ToString(); Sentlast = EmailLogList.Rows[0]["LastSent"].ToString(); LPWeb.BLL.EmailLog bllEmailLog = new EmailLog(); var dt = bllEmailLog.GetEmailLogAttachments(iEmailLogID); gridList.DataSource = dt; gridList.DataBind(); #endregion #region Out put file bIsValid = PageCommon.ValidateQueryString(this, "fileName", QueryStringType.String); if (bIsValid) { string fileName = this.Request.QueryString["fileName"].ToString(); foreach (DataRow dr in dt.Rows) { if (dr["Name"].ToString().Trim() + "." + dr["FileType"].ToString().Trim() == fileName.Trim()) { byte[] file = (byte[])dr["FileImage"]; Response.Clear(); Response.Charset = "UTF-8"; Response.ContentEncoding = Encoding.Default; string FileType = dr["FileType"].ToString().Trim(); string Name = dr["Name"].ToString().Trim(); // 文件扩展名 string Ext = ""; if (FileType == "Word" || FileType.ToLower() == "docx") { Ext = ".docx"; } else if (FileType.ToLower() == "doc") { Ext = ".doc"; } else if (FileType.ToUpper() == "XLS" || FileType.ToUpper() == "XLSX") { Ext = ".xlsx"; } else if (FileType == "JPGE") { Ext = ".jpg"; } else { Ext = "." + FileType.ToLower(); } // 文件名 string sFileName = Name + Ext; this.Response.Clear(); this.Response.ClearHeaders(); this.Response.Buffer = false; if (FileType == "PDF") { this.Response.ContentType = "application/pdf"; } else if (FileType == "Word") { this.Response.ContentType = "application/msword"; } else if (FileType == "XLS") { this.Response.ContentType = "application/vnd.ms-excel"; } else if (FileType == "ZIP") { this.Response.ContentType = "application/zip"; } else { this.Response.ContentType = "application/octet-stream"; } if (FileType == "ZIP" || FileType == "Word" || FileType == "XLS") { this.Response.AppendHeader("Content-Disposition", "attachment;filename=" + sFileName); } else { this.Response.AppendHeader("Content-Disposition", "inline;filename=" + sFileName); } this.Response.BinaryWrite(file); this.Response.Flush(); Response.End(); } } } #endregion }