代码如下:
/// <summary> /// 附件下载 /// </summary> /// <param name="attachId">附件ID</param> public void DownloadAttach(int attachId) { Edu_Attach edu_Attach = edu_AttachService.findById<Edu_Attach>(attachId); if (edu_Attach != null) { HttpContext context = (HttpContext)ctx.web.Context; if (context != null) { string filePathName = PathHelper.Map(sys.Path.DiskPhoto) + edu_Attach.AttachContent.Replace("/static/upload/image", "").Replace("/", "\"); int pos = filePathName.LastIndexOf("\"); string fileName = filePathName.Substring(pos + 1); string UserAgent = context.Request.ServerVariables["http_user_agent"].ToLower(); if (UserAgent.IndexOf("firefox") == -1) { //非火狐浏览器 context.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(edu_Attach.AttachName)); } else { context.Response.AddHeader("content-disposition", "attachment;filename=" + edu_Attach.AttachName); } FileStream fs = new FileStream(filePathName, FileMode.Open, FileAccess.Read); byte[] bArr = new byte[fs.Length]; fs.Read(bArr, 0, bArr.Length); fs.Close(); context.Response.ContentEncoding = Encoding.UTF8; context.Response.BinaryWrite(bArr); context.Response.Flush(); context.Response.End(); } } }