コード例 #1
0
ファイル: HtmlHelper.cs プロジェクト: BOBO41/CatchForm
        public void FileProcess(Page page, HttpWebResponse wr, string query, string orPath)
        {
            var comId = "";
            var dpath = "";
            var dic   = HttpUtility.ParseQueryString(query);

            if ("/download.php" == orPath)
            {
                comId = dic["companyID"];
                dpath = dic["path"];
            }
            else
            {
                comId = HttpContext.Current.Session["ComID"].ToString();
                dpath = dic["serial"] + ".pdf";
            }

            if (string.IsNullOrEmpty(comId) || string.IsNullOrEmpty(dpath))
            {
                return;
            }
            var    fileName    = dpath.Substring(dpath.LastIndexOf('/') + 1);
            string datatime    = System.DateTime.Now.ToString("yyyyMMddHHmmssffff");
            var    newFileName = datatime + fileName;
            var    filePath    = HttpContext.Current.Server.MapPath("/UploadFiles/") + newFileName;

            byte[] buffer    = new byte[1024];
            Stream outStream = File.Create(filePath);
            Stream inStream  = wr.GetResponseStream();

            int l;

            do
            {
                l = inStream.Read(buffer, 0, buffer.Length);
                if (l > 0)
                {
                    outStream.Write(buffer, 0, l);
                }
            } while (l > 0);

            outStream.Close();
            inStream.Close();

            List <SqlParameter> parameters = new List <SqlParameter>();

            parameters.Add(new SqlParameter("@ComID", DbType.AnsiString)
            {
                Value = comId
            });
            parameters.Add(new SqlParameter("@FileName", DbType.AnsiString)
            {
                Value = fileName
            });
            Admin.Model.FileList exists = _fileListDal.GetModel(" ComID=@ComID and FileName=@FileName ", parameters);
            var user  = HttpContext.Current.Session["CurrentUser"] as Admin.Model.OrgUsers;
            var model = new Admin.Model.FileList();

            model.UId      = user.UId;
            model.ComID    = comId;
            model.FileName = fileName;
            model.FPath    = newFileName;
            if (null != exists)
            {
                model.ID         = exists.ID;
                model.UpdateDate = DateTime.Now;
                _fileListDal.Update(model);
            }
            else
            {
                model.CreateDate = DateTime.Now;
                _fileListDal.Add(model);
            }

            page.Response.Clear();
            page.Response.Charset         = "utf-8";
            page.Response.Buffer          = true;
            page.EnableViewState          = false;
            page.Response.ContentEncoding = System.Text.Encoding.UTF8;

            page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
            page.Response.WriteFile(filePath);
            page.Response.Flush();
            page.Response.Close();
            page.Response.End();
        }
コード例 #2
0
        public void FileProcess(Page page, HttpWebResponse wr, string query, string orPath)
        {
            var comId = "";
            var dpath = "";
            var dic = HttpUtility.ParseQueryString(query);
            if ("/download.php" == orPath) {
                comId = dic["companyID"];
                dpath = dic["path"];
            }
            else {
                comId = HttpContext.Current.Session["ComID"].ToString();
                dpath = dic["serial"] + ".pdf";
            }

            if (string.IsNullOrEmpty(comId) || string.IsNullOrEmpty(dpath)) return;
            var fileName = dpath.Substring(dpath.LastIndexOf('/') + 1);
            string datatime = System.DateTime.Now.ToString("yyyyMMddHHmmssffff");
            var newFileName = datatime + fileName;
            var filePath = HttpContext.Current.Server.MapPath("/UploadFiles/") + newFileName;
            byte[] buffer = new byte[1024];
            Stream outStream = File.Create(filePath);
            Stream inStream = wr.GetResponseStream();

            int l;
            do {
                l = inStream.Read(buffer, 0, buffer.Length);
                if (l > 0)
                    outStream.Write(buffer, 0, l);
            } while (l > 0);

            outStream.Close();
            inStream.Close();

            List<SqlParameter> parameters = new List<SqlParameter>();
            parameters.Add(new SqlParameter("@ComID", DbType.AnsiString) { Value = comId });
            parameters.Add(new SqlParameter("@FileName", DbType.AnsiString) { Value = fileName });
            Admin.Model.FileList exists = _fileListDal.GetModel(" ComID=@ComID and FileName=@FileName ", parameters);
            var user = HttpContext.Current.Session["CurrentUser"] as Admin.Model.OrgUsers;
            var model = new Admin.Model.FileList();
            model.UId = user.UId;
            model.ComID = comId;
            model.FileName = fileName;
            model.FPath = newFileName;
            if (null != exists) {
                model.ID = exists.ID;
                model.UpdateDate = DateTime.Now;
                _fileListDal.Update(model);
            }
            else {
                model.CreateDate = DateTime.Now;
                _fileListDal.Add(model);
            }

            page.Response.Clear();
            page.Response.Charset = "utf-8";
            page.Response.Buffer = true;
            page.EnableViewState = false;
            page.Response.ContentEncoding = System.Text.Encoding.UTF8;

            page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
            page.Response.WriteFile(filePath);
            page.Response.Flush();
            page.Response.Close();
            page.Response.End();
        }