通过输出二进制流来实现文件下载功能

IAllotService AllotSrv = new AllotService();
            var mId = Request.QueryString["id"];
            if (String.IsNullOrEmpty(mId))
                return;

            var mAllot = AllotSrv.GetById(mId);
            List<Allot> mAllots = new List<Allot>();
            mAllots.Add(mAllot);

            var mMasterRpt = new StgAllotRpt();
            mMasterRpt.id = mId;
            mMasterRpt.DataSource = mAllots;

            byte[] mPdfFile = null;
            MemoryStream mFileStream = new MemoryStream();
            mMasterRpt.ExportToPdf(mFileStream);
            mPdfFile = mFileStream.ToArray();

            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.AppendHeader("content-length", mPdfFile.Length.ToString());
            HttpContext.Current.Response.AppendHeader("content-Disposition", "attachment;filename=" + GetFileName("调拨单.pdf"));
            HttpContext.Current.Response.ContentType = "application/pdf";
            HttpContext.Current.Response.BinaryWrite(mPdfFile);
            HttpContext.Current.Response.End();

 

posted @ 2013-01-25 15:45  xust  阅读(538)  评论(0)    收藏  举报