예제 #1
0
        public void ProcessRequest(HttpContext context)
        {
            int id = DTRequest.GetQueryInt("id");

            //获得下载ID
            if (id < 1)
            {
                context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,参数传值不正确哦!"));
                return;
            }
            //检查下载记录是否存在
            BLL.download_attach bll = new BLL.download_attach();
            if (!bll.Exists(id))
            {
                context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,您要下载的文件不存在或已经被删除啦!"));
                return;
            }
            Model.download_attach model = bll.GetModel(id);
            //检查积分是否足够
            if (model.point > 0)
            {
                //检查用户是否登录
                Model.users userModel = new Web.UI.BasePage().GetUserInfo();
                if (userModel == null)
                {
                    //自动跳转URL
                    HttpContext.Current.Response.Redirect(new Web.UI.BasePage().linkurl("login"));
                }
                //防止重复扣积分
                string cookie = Utils.GetCookie(DTKeys.COOKIE_DOWNLOAD_KEY, "attach_" + userModel.id.ToString());
                if (cookie != model.id.ToString())
                {
                    //检查积分
                    if (model.point > userModel.point)
                    {
                        context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,您的积分不足支付本次下载!"));
                        return;
                    }
                    //扣取积分
                    new BLL.point_log().Add(userModel.id, userModel.user_name, model.point * -1, "下载附件:“" + model.title + "”,扣减积分");
                    //写入Cookie
                    Utils.WriteCookie(DTKeys.COOKIE_DOWNLOAD_KEY, "attach_" + userModel.id.ToString(), model.id.ToString(), 8640);
                }
            }
            //下载次数+1
            bll.UpdateField(id, "down_num=down_num+1");
            //检查文件本地还是远程
            if (model.file_path.ToLower().StartsWith("http://"))
            {
                context.Response.Redirect(model.file_path);
                return;
            }
            else
            {
                //取得文件物理路径
                string fullFileName = Utils.GetMapPath(model.file_path);
                if (!File.Exists(fullFileName))
                {
                    context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,您要下载的文件不存在或已经被删除啦!"));
                    return;
                }
                FileInfo file = new FileInfo(fullFileName);                                                                      //路径
                context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");                                    //解决中文乱码
                context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(model.title)); //解决中文文件名乱码
                context.Response.AddHeader("Content-length", file.Length.ToString());
                context.Response.ContentType = "application/pdf";
                context.Response.WriteFile(file.FullName);
                context.Response.End();
            }
        }
예제 #2
0
파일: download.ashx.cs 프로젝트: egojit/B2C
 public void ProcessRequest(HttpContext context)
 {
     int id = DTRequest.GetQueryInt("id");
     //获得下载ID
     if (id < 1)
     {
         context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,参数传值不正确哦!"));
         return;
     }
     //检查下载记录是否存在
     BLL.download_attach bll = new BLL.download_attach();
     if (!bll.Exists(id))
     {
         context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,您要下载的文件不存在或已经被删除啦!"));
         return;
     }
     Model.download_attach model = bll.GetModel(id);
     //检查积分是否足够
     if (model.point > 0)
     {
         //检查用户是否登录
         Model.users userModel = new Web.UI.BasePage().GetUserInfo();
         if (userModel == null)
         {
             //自动跳转URL
             HttpContext.Current.Response.Redirect(new Web.UI.BasePage().linkurl("login"));
         }
         //防止重复扣积分
         string cookie = Utils.GetCookie(DTKeys.COOKIE_DOWNLOAD_KEY, "attach_" + userModel.id.ToString());
         if (cookie != model.id.ToString())
         {
             //检查积分
             if (model.point > userModel.point)
             {
                 context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,您的积分不足支付本次下载!"));
                 return;
             }
             //扣取积分
             new BLL.point_log().Add(userModel.id, userModel.user_name, model.point * -1, "下载附件:“" + model.title + "”,扣减积分");
             //写入Cookie
             Utils.WriteCookie(DTKeys.COOKIE_DOWNLOAD_KEY, "attach_" + userModel.id.ToString(), model.id.ToString(), 8640);
         }
     }
     //下载次数+1
     bll.UpdateField(id, "down_num=down_num+1");
     //检查文件本地还是远程
     if (model.file_path.ToLower().StartsWith("http://"))
     {
         context.Response.Redirect(model.file_path);
         return;
     }
     else
     {
         //取得文件物理路径
         string fullFileName = Utils.GetMapPath(model.file_path);
         if (!File.Exists(fullFileName))
         {
             context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出错啦,您要下载的文件不存在或已经被删除啦!"));
             return;
         }
         FileInfo file = new FileInfo(fullFileName);//路径
         context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); //解决中文乱码
         context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(model.title)); //解决中文文件名乱码
         context.Response.AddHeader("Content-length", file.Length.ToString());
         context.Response.ContentType = "application/pdf";
         context.Response.WriteFile(file.FullName);
         context.Response.End();
     }
 }
예제 #3
0
        public void ProcessRequest(HttpContext context)
        {
            int id = DTRequest.GetQueryInt("id");

            //獲得下載ID
            if (id < 1)
            {
                context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出錯啦,參數傳值不正確!"));
                return;
            }
            //檢查下載記錄是否存在
            BLL.download_attach bll = new BLL.download_attach();
            if (!bll.Exists(id))
            {
                context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出錯啦,您要下載的文件不存在或已被刪除!"));
                return;
            }
            Model.download_attach model = bll.GetModel(id);
            //檢查積分是否足夠
            if (model.point > 0)
            {
                //檢查用戶是否登錄
                Model.users userModel = new Web.UI.BasePage().GetUserInfo();
                if (userModel == null)
                {
                    //自動跳轉URL
                    HttpContext.Current.Response.Redirect(new Web.UI.BasePage().linkurl("login"));
                }
                //防止重複扣積分
                string cookie = Utils.GetCookie(DTKeys.COOKIE_DOWNLOAD_KEY, "attach_" + userModel.id.ToString());
                if (cookie != model.id.ToString())
                {
                    //檢查積分
                    if (model.point > userModel.point)
                    {
                        context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出錯啦,您的積分不足支付本次下載!"));
                        return;
                    }
                    //扣取積分
                    new BLL.point_log().Add(userModel.id, userModel.user_name, model.point * -1, "下載附件:“" + model.title + "”,扣除積分");
                    //寫入Cookie
                    Utils.WriteCookie(DTKeys.COOKIE_DOWNLOAD_KEY, "attach_" + userModel.id.ToString(), model.id.ToString(), 8640);
                }
            }
            //下載次數+1
            bll.UpdateField(id, "down_num=down_num+1");
            //檢查檔本地還是遠端
            if (model.file_path.ToLower().StartsWith("http://"))
            {
                context.Response.Redirect(model.file_path);
                return;
            }
            else
            {
                //取得檔物理路徑
                string fullFileName = Utils.GetMapPath(model.file_path);
                if (!File.Exists(fullFileName))
                {
                    context.Response.Redirect(siteConfig.webpath + "error.aspx?msg=" + Utils.UrlEncode("出錯啦,您要下載的文件不存在或已被刪除!"));
                    return;
                }
                FileInfo file = new FileInfo(fullFileName);                                                                      //路徑
                context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");                                    //解決中文亂碼
                context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(model.title)); //解決中文檔案名亂碼
                context.Response.AddHeader("Content-length", file.Length.ToString());
                context.Response.ContentType = "application/pdf";
                context.Response.WriteFile(file.FullName);
                context.Response.End();
            }
        }