Example #1
0
        public ActionResult GetUserImages(int num, int p)
        {
            if (UserSession.CurrentUser == null)
            {
                return(Content(""));
            }

            IList <Inpinke_Image> list = DBImageBLL.GetUserImages(PageInfo, UserSession.CurrentUser.ID);

            if (list != null)
            {
                List <pagedata> photoList = new List <pagedata>();
                foreach (Inpinke_Image i in list)
                {
                    pagedata d = new pagedata()
                    {
                        id     = i.ID,
                        bigImg = "/userfile/" + UserSession.CurrentUser.ID + "/" + i.ImageName + "_edit.jpg",
                        img    = i.Path,
                        title  = string.IsNullOrEmpty(i.Remark) ? "" : i.Remark,
                    };
                    string imgPath = Server.MapPath(d.img);
                    d.img = "/userfile/" + UserSession.CurrentUser.ID + "/" + i.ImageName + "_view.jpg";
                    string vimgPath = Server.MapPath(d.img);
                    if (!System.IO.File.Exists(imgPath))
                    {
                        continue;
                    }
                    if (!System.IO.File.Exists(vimgPath))
                    {
                        System.Drawing.Image originalImage = System.Drawing.Image.FromFile(imgPath);
                        if (originalImage != null)
                        {
                            Bitmap bitmap = new Bitmap(originalImage);
                            ImageProcessBLL.CreateStaticScaleImage(bitmap, 220, 1, 1000, vimgPath);
                        }
                        else
                        {
                            continue;
                        }
                    }
                    photoList.Add(d);
                }
                System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(photoList.GetType());
                using (MemoryStream ms = new MemoryStream())
                {
                    serializer.WriteObject(ms, photoList);
                    return(Content(Encoding.UTF8.GetString(ms.ToArray())));
                }
            }
            else
            {
                return(Content(""));
            }
        }
Example #2
0
 public ActionResult AjaxGetUserImageByID(int?imageid)
 {
     if (imageid.HasValue)
     {
         Inpinke_Image model = DBImageBLL.GetImageByID(imageid.Value);
         return(Content("{success:true,image:{id:" + model.ID + ",name:\"" + model.ImageName + "\",path:\"" + model.Path + "\"}}"));
     }
     else
     {
         return(Content("{success:false,msg:\"参数不正确\"}"));
     }
 }
Example #3
0
        public ActionResult AjaxGetBookImage(int userid, int bookid, int count, int skip)
        {
            int total = 0;
            IList <Inpinke_Book_Image> list = DBImageBLL.GetBookImages(skip, count, ref total, bookid);

            if (list != null)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("{\"success\":true,\"images\":[");
                foreach (Inpinke_Book_Image i in list)
                {
                    sb.Append("{" + string.Format("\"id\":{0},\"name\":\"{1}\",\"usednum\":{2}", i.ImageID, i.Inpinke_Image.ImageName, i.UsedNum) + "},");
                }

                return(Content(sb.ToString().TrimEnd(',') + "]}"));
            }
            else
            {
                return(Content("{\"success\":false,\"msg\":\"暂无照片\"}"));
            }
        }
Example #4
0
        /// <summary>
        /// 删除用户图片
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult DeleteUserImage(int id)
        {
            if (UserSession.CurrentUser == null)
            {
                return(Content("{\"success\":false,\"msg\":\"请重新登录\"}"));
            }
            Inpinke_Image model = DBImageBLL.GetImageByID(id);

            if (model.UserID != UserSession.CurrentUser.ID)
            {
                return(Content("{\"success\":false,\"msg\":\"请重新登录\"}"));
            }
            model.Status = (int)RecordStatus.Delete;
            BaseResponse br = DBImageBLL.DeleteUserImage(model);

            if (br.IsSuccess)
            {
                return(Content("{\"success\":true,id:" + model.ID + ",\"msg\":\"删除用户图片成功\"}"));
            }
            else
            {
                return(Content("{\"success\":false,\"msg\":\"" + br.Message + "\"}"));
            }
        }
Example #5
0
        /// <summary>
        /// 保存页面内容
        /// </summary>
        /// <param name="bookid"></param>
        /// <param name="userid"></param>
        /// <param name="pagedata"></param>
        /// <returns></returns>
        public ActionResult SavePageData(int bookid, int userid, string pdata)
        {
            try
            {
                Inpinke_Book model    = DBBookBLL.GetBookByID(bookid);
                PageDataObjs pageObjs = (PageDataObjs)JsonConvert.DeserializeObject(pdata, typeof(PageDataObjs));
                if (pageObjs == null)
                {
                    return(Content("{\"success\":false,\"msg\":\"保存失败,内容为空\"}"));
                }
                if (model.BookStauts == (int)BookStatus.Making)
                {
                    return(Content("{\"success\":false,\"msg\":\"对不起当前印品已下单印制不能再编辑。\"}"));
                }
                string     strReturn    = "{\"success\":true,\"pviews\":[";
                string     noneused     = "";
                string     usedimgs     = "";
                List <int> noneUseImage = new List <int>();
                List <int> usedimg      = new List <int>();
                foreach (PageDataObj pageObj in pageObjs.pdatas)
                {
                    int pnum = pageObj.pagenum;
                    Inpinke_Book_Page bookPage = DBBookBLL.GetBookPageByPNum(pnum, bookid);
                    XElement          root     = new XElement("layout", new XAttribute("pnum", pnum), new XAttribute("styleid", pageObj.styleid),
                                                              new XAttribute("isskip", pageObj.isskip), new XAttribute("opnum", pageObj.opagenum), new XAttribute("bgcolor", pageObj.bgcolor));
                    bool isCreate = false;
                    if (bookPage == null)
                    {
                        bookPage = new Inpinke_Book_Page()
                        {
                            BookID  = bookid,
                            PageNum = pnum
                        };
                        isCreate = true;
                    }
                    else
                    {
                        //原页面不是跨页,现在是跨页的,需要删除掉一个原页面
                        if (!bookPage.IsSkip && pageObj.isskip.ToLower() == "true" && pageObj.opagenum != "-1_0")
                        {
                            int opnum = int.Parse(pageObj.opagenum.Replace(pnum + "_", ""));
                            Inpinke_Book_Page oBookPage = DBBookBLL.GetBookPageByPNum(opnum, bookid);
                            if (oBookPage != null)
                            {
                                oBookPage.PageStatus = (int)PageStatus.Delete;
                                DBBookBLL.UpdateBookPage(oBookPage);
                                //修改页面图片使用次数
                                DBImageBLL.ChangeImageUsedNum(oBookPage.PageData, bookid, true, ref noneUseImage);
                            }
                        }
                        //修改页面图片使用次数
                        DBImageBLL.ChangeImageUsedNum(bookPage.PageData, bookid, true, ref noneUseImage);
                    }
                    bookPage.IsSkip = pageObj.isskip.ToLower() == "false" ? false : true;

                    //添加图片节点
                    foreach (PageImage image in pageObj.image)
                    {
                        XElement       imageItem = new XElement("image");
                        PropertyInfo[] pis       = image.GetType().GetProperties();
                        int            urlIndex  = image.src.ToLower().IndexOf("/userfile");
                        if (urlIndex > 0)
                        {
                            image.src = image.src.Substring(urlIndex);
                        }
                        foreach (PropertyInfo property in pis)
                        {
                            //设置节点属性
                            imageItem.SetAttributeValue(property.Name, property.GetValue(image, null));
                        }
                        root.Add(imageItem);
                    }
                    //添加文字节点
                    foreach (PageText text in pageObj.text)
                    {
                        XElement       textItem = new XElement("text");
                        PropertyInfo[] pis      = text.GetType().GetProperties();
                        foreach (PropertyInfo property in pis)
                        {
                            //设置节点属性
                            textItem.SetAttributeValue(property.Name, property.GetValue(text, null));
                        }
                        if (pageObj.pagenum == 0 && text.issingle == "true")
                        {
                            if (!string.IsNullOrEmpty(text.content) && text.conid == "txt_1")
                            {
                                model.BookName = text.content;
                            }
                            if (!string.IsNullOrEmpty(text.content) && text.conid == "txt_2")
                            {
                                model.SubBookName = text.content;
                            }
                        }

                        root.Add(textItem);
                    }
                    bookPage.PageData = root;
                    //修改页面图片使用次数

                    DBImageBLL.ChangeImageUsedNum(bookPage.PageData, bookid, false, ref usedimg);

                    bool istxtO = false; //文字是否过多
                    if (isCreate)
                    {
                        int pID = DBBookBLL.GetMaxBookPageID() + 1;
                        bookPage.PageImg = SavePageView(pageObj, userid, model, ref istxtO, pID);
                    }
                    else
                    {
                        bookPage.PageImg = SavePageView(pageObj, userid, model, ref istxtO, bookPage.ID);
                    }

                    strReturn          += "{\"pnum\":" + pageObj.pagenum + ",\"src\":\"" + bookPage.PageImg + "\",\"isskip\":" + pageObj.isskip + ",\"istxtover\":" + istxtO.ToString().ToLower() + "},";
                    bookPage.PageStatus = (int)PageStatus.Normal;
                    if (pageObj.pagenum == 0)
                    {
                        model.BookCover = "/UserFile/" + UserSession.CurrentUser.ID + "/" + bookid + "/cover200.jpg";
                    }

                    if (isCreate)
                    {
                        DBBookBLL.AddBookPage(bookPage);
                        //更新已完成的页数
                        DBBookBLL.UpdateDonePage(bookid);
                    }
                    else
                    {
                        DBBookBLL.UpdateBookPage(bookPage);
                    }
                }
                noneused = string.Join(",", noneUseImage);
                usedimgs = string.Join(",", usedimg);

                strReturn = strReturn.TrimEnd(',') + "],\"noneusedimg\":[" + noneused + "],\"usedimg\":[" + usedimgs + "]}";
                return(Content(strReturn));
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("SavePageData BookID:{0},UserID:{1},Error:{2}", bookid, userid, ex.ToString()));
                return(Content("{\"success\":false,\"msg\":\"服务器异常保存失败,请稍后再试\"}"));
            }
        }
Example #6
0
        public ActionResult UploadFile()
        {
            HttpFileCollectionBase files = Request.Files;

            if (files.Count == 0)
            {
                Response.Write("请勿直接访问本文件");
                Response.End();
                return(Content("请勿直接访问本文件"));
            }
            string dName  = "/UserFile";
            string path   = Server.MapPath(dName);
            string userid = Request.Form["userid"];
            string bookid = Request.Form["bookid"];

            try
            {
                // 只取第 1 个文件
                HttpPostedFileBase file = files[0];
                if (file != null && file.ContentLength > 0)
                {
                    string fileName    = Request.Form["fileName"];
                    string orgFileName = fileName ?? string.Empty;

                    string[] fileNameInfo = fileName.Split('.');
                    string   extendName   = ".jpg";
                    if (fileNameInfo.Length > 1)
                    {
                        extendName = "." + fileNameInfo[fileNameInfo.Length - 1];
                    }
                    int    intRandom  = (new Random()).Next(10000, 99999);
                    string strTimeNow = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() +
                                        DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
                    fileName = strTimeNow + intRandom.ToString();

                    string theFileName = fileName;
                    string vPath       = dName + "/" + userid + "/OriginalImage/" + fileName + ".jpg";
                    if (!Directory.Exists(path + "/OriginalImage"))
                    {
                        Directory.CreateDirectory(path + "/" + userid + "/OriginalImage");
                    }
                    string strOriginalUrl = path + "/" + userid + "/OriginalImage/" + fileName + extendName;
                    file.SaveAs(strOriginalUrl);

                    //string mad5String = MD5HashFile.GetMD5HashFromFile(strOriginalUrl);
                    fileName = path + "/" + userid + "/" + fileName;
                    System.Drawing.Image originalImage = System.Drawing.Image.FromFile(strOriginalUrl);
                    Bitmap bitmap = new Bitmap(originalImage);
                    IList <Inpinke_ImageScale> list = DBImageScaleBLL.GetAllImageScaleSize();
                    if (list != null)
                    {
                        foreach (Inpinke_ImageScale s in list)
                        {
                            if (s.GroupID == 1)
                            {
                                ImageProcessBLL.CreateStaticScaleImage(bitmap, s.Width, s.Height, 1000, fileName + s.PlusName + ".jpg");
                            }
                            else
                            {
                                ImageProcessBLL.CreateScaleImage(bitmap, s.Width, s.Height, fileName + s.PlusName + ".jpg", s.IsScale);
                            }
                        }
                    }
                    else
                    {
                        ImageProcessBLL.CreateScaleImage(bitmap, 80, 80, fileName + "_thumb.jpg", false);
                        ImageProcessBLL.CreateScaleImage(bitmap, 2400, 2400, fileName + "_print.jpg", true);
                        ImageProcessBLL.CreateScaleImage(bitmap, 600, 600, fileName + "_edit.jpg", true);
                    }
                    originalImage.Dispose();
                    bitmap.Dispose();
                    Inpinke_Image model = new Inpinke_Image()
                    {
                        UserID       = int.Parse(userid),
                        Path         = vPath,
                        OriginalName = orgFileName.Length > 150 ? orgFileName.Substring(0, 150) : orgFileName,
                        ImageName    = theFileName,
                        HashCode     = MD5HashFile.GetMD5HashFromFile(strOriginalUrl),
                        UsedNum      = 0
                    };
                    BaseResponse br     = DBImageBLL.AddUserImage(model);
                    string       result = string.Empty;
                    if (br.IsSuccess)
                    {
                        if (!string.IsNullOrEmpty(bookid))
                        {
                            Inpinke_Book_Image bImg = new Inpinke_Book_Image()
                            {
                                UsedNum = 0,
                                ImageID = model.ID,
                                BookID  = int.Parse(bookid)
                            };
                            DBImageBLL.AddBookImage(bImg);
                        }
                        result = "{success:true,image:{id:" + model.ID + ",name:\"" + model.ImageName + "\",path:\"" + model.Path + "\"}}";
                    }
                    else
                    {
                        result = "{success:false,msg:\"" + br.Message + "\"}";
                    }
                    return(Content(result));
                }
                else
                {
                    return(Content("{success:false,msg:\"上传内容为空\"}"));
                }
            }
            catch (Exception ex)
            {
                Logger.Error(string.Format("UploadFile UserID:{0}, Error{1}", userid, ex.ToString()));
                return(Content("{success:false,msg:\"上传出错,请稍后再试\"}"));
            }
        }
Example #7
0
        public ActionResult AjaxDeleteBookImage(int userid, int bookid, int imageid)
        {
            BaseResponse br = DBImageBLL.DeleteBookImage(userid, bookid, imageid);

            return(Content("{\"success\":" + br.IsSuccess.ToString().ToLower() + ",\"imageid\":" + imageid + ",\"msg\":\"" + br.Message + "\"}"));
        }