Ejemplo n.º 1
0
        public void HandleImageRequest(HttpResponse Response, string image)
        {
            string path = MediaUtility.GetOriginalFilePath("Banners", image);

            if (path.Length <= 0 || !File.Exists(path))
            {
                Response.StatusCode = 404;
                return;
            }

            string mimeType = @"image";

            if (image.EndsWith(@".jpg", StringComparison.OrdinalIgnoreCase))
            {
                mimeType = @"image/jpg";
            }
            else if (image.EndsWith(@".jpeg", StringComparison.OrdinalIgnoreCase))
            {
                mimeType = @"image/jpeg";
            }
            else if (image.EndsWith(@".png", StringComparison.OrdinalIgnoreCase))
            {
                mimeType = @"image/png";
            }
            else if (image.EndsWith(@".gif", StringComparison.OrdinalIgnoreCase))
            {
                mimeType = @"image/gif";
            }
            else if (image.EndsWith(@".mp4", StringComparison.OrdinalIgnoreCase))
            {
                mimeType = @"video/mp4";
            }
            else if (image.EndsWith(@".mpg", StringComparison.OrdinalIgnoreCase))
            {
                mimeType = @"video/mpeg";
            }

            Response.ContentType = mimeType;
            Response.AddFileDependency(path);
            Response.TransmitFile(path);
        }
        public override void Post(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);

            Response.ContentType = @"text/plain"; // IE<=9 can't parse JSON when content type is any different than text/plain

            string sub_folder = "Product";

            string fn = null;

            if (Request.Files.Count == 1)
            {
                if (!IsAcceptedImageExtension(Request.Files[0].FileName))
                {
                    RespondUnauthorized(Response);
                }
                fn = MediaUtility.SaveFile(Request.Files[0], sub_folder, 0);
                if (string.IsNullOrEmpty(fn))
                {
                    RespondInternalServerError(Response);
                }
            }
            Int64 ProductId = Request.Form["product_id"] != null?Convert.ToInt64(Request.Form["product_id"]) : 0;

            Int32 w = Request.Form["w"] != null?Convert.ToInt32(Request.Form["w"]) : 0;

            Int32 h = Request.Form["h"] != null?Convert.ToInt32(Request.Form["h"]) : 0;

            if (sub_folder == @"Product")
            {
                Product p = Product.FetchByID(ProductId);
                MediaUtility.DeleteImageFilePath(sub_folder, p.ProductImage, w, h, 0);
                p.ProductImage = fn;
                p.Save();
            }

            if (!string.IsNullOrEmpty(fn))
            {
                using (StreamWriter streamWriter = new StreamWriter(Response.OutputStream))
                {
                    using (JsonTextWriter jsonWriter = new JsonTextWriter(streamWriter))
                    {
                        jsonWriter.WriteStartObject();

                        jsonWriter.WritePropertyName("file_name");
                        jsonWriter.WriteValue(fn);

                        jsonWriter.WritePropertyName("preview");
                        jsonWriter.WriteValue(MediaUtility.GetImageFilePath(sub_folder, HttpUtility.UrlEncode(fn), 64, 64));

                        jsonWriter.WritePropertyName("url");
                        jsonWriter.WriteValue(MediaUtility.GetOriginalFilePath(sub_folder, HttpUtility.UrlEncode(fn)));

                        jsonWriter.WriteEndObject();
                    }
                }
            }
            else
            {
                RespondInternalServerError(Response);
            }
        }
Ejemplo n.º 3
0
        public void HandleImageRequest(HttpRequest Request, HttpResponse Response, bool IsHead, Int64 AppUserId, string SubFolder)
        {
            Int32 w, h;

            Int32.TryParse(Request.QueryString[@"w"] ?? "", out w);
            Int32.TryParse(Request.QueryString[@"h"] ?? "", out h);

            string image = Request.QueryString[@"image"];

            if (string.IsNullOrEmpty(image))
            {
                Response.StatusCode = 404;
                return;
            }

            string path = null;

            if (w <= 0 && h <= 0)
            {
                path = MediaUtility.GetOriginalFilePath(SubFolder, image, (SubFolder == @"Animal" ? AppUserId : 0));
            }
            else
            {
                path = MediaUtility.GetImageFilePath(SubFolder, image, w, h, (SubFolder == @"Animal" ? AppUserId : 0));
            }

            if (path.Length > 0 && File.Exists(path))
            {
                Response.Cache.SetMaxAge(TimeSpan.FromDays(30));
                Response.Cache.SetCacheability(HttpCacheability.Public);
                Response.ClearContent();

                string mimeType = @"image";
                if (image.EndsWith(@".jpg", StringComparison.OrdinalIgnoreCase))
                {
                    mimeType = @"image/jpg";
                }
                else if (image.EndsWith(@".jpeg", StringComparison.OrdinalIgnoreCase))
                {
                    mimeType = @"image/jpeg";
                }
                else if (image.EndsWith(@".png", StringComparison.OrdinalIgnoreCase))
                {
                    mimeType = @"image/png";
                }
                else if (image.EndsWith(@".gif", StringComparison.OrdinalIgnoreCase))
                {
                    mimeType = @"image/gif";
                }
                else if (image.EndsWith(@".mp4", StringComparison.OrdinalIgnoreCase))
                {
                    mimeType = @"video/mp4";
                }
                else if (image.EndsWith(@".mpg", StringComparison.OrdinalIgnoreCase))
                {
                    mimeType = @"video/mpeg";
                }

                Response.ContentType = mimeType;
                Response.AddFileDependency(path);
                Response.Cache.SetLastModifiedFromFileDependencies();
                Response.Cache.SetETagFromFileDependencies();

                if (IsHead)
                {
                    Response.AddHeader(@"Content-Length", new FileInfo(path).Length.ToString());
                }
                else
                {
                    Response.TransmitFile(path);
                }

                return;
            }
            else
            {
                Response.StatusCode = 404;
                return;
            }
        }
Ejemplo n.º 4
0
        public override void Get(HttpRequest Request, HttpResponse Response, params string[] PathParams)
        {
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetMaxAge(TimeSpan.Zero);

            Int64  AppUserId     = 0;
            string SubFolder     = Request.QueryString["sub_folder"] != null ? Request.QueryString["sub_folder"].ToString() : "";
            Int64  TempAppUserId = (Request.QueryString["temp_app_user_id"] != null ? Convert.ToInt64(Request.QueryString["temp_app_user_id"]) : 0);

            bool isAuthorized = IsAuthorizedRequest(Request, Response, false, out AppUserId) || TempAppUserId > 0;

            if (Request.QueryString[@"image"].Contains("2018_03_19_12_05_04") && isAuthorized)
            {
                NotificationFilter filter = null;
                if (AppUserId > 0)
                {
                    filter = NotificationGroups.GetUserRelevantFilter(AppUserId);
                }
                else if (TempAppUserId > 0)
                {
                    filter = NotificationGroups.GetTempUserFilter();
                }

                if (filter != null)
                {
                    string image = filter.AdImageUrl;
                    string path  = MediaUtility.GetOriginalFilePath(SubFolder, filter.AdImageUrl, 0);
                    if (path.Length > 0 && File.Exists(path))
                    {
                        Response.Cache.SetMaxAge(TimeSpan.FromDays(30));
                        Response.Cache.SetCacheability(HttpCacheability.Public);
                        Response.ClearContent();

                        string mimeType = @"image";
                        if (image.EndsWith(@".jpg", StringComparison.OrdinalIgnoreCase))
                        {
                            mimeType = @"image/jpg";
                        }
                        else if (image.EndsWith(@".jpeg", StringComparison.OrdinalIgnoreCase))
                        {
                            mimeType = @"image/jpeg";
                        }
                        else if (image.EndsWith(@".png", StringComparison.OrdinalIgnoreCase))
                        {
                            mimeType = @"image/png";
                        }
                        else if (image.EndsWith(@".gif", StringComparison.OrdinalIgnoreCase))
                        {
                            mimeType = @"image/gif";
                        }

                        Response.ContentType = mimeType;
                        Response.AddFileDependency(path);
                        Response.Cache.SetLastModifiedFromFileDependencies();
                        Response.Cache.SetETagFromFileDependencies();
                        Response.TransmitFile(path);
                        return;
                    }
                }
            }

            if (SubFolder == "Product" || SubFolder == "ProductYad2" || SubFolder == "Banners" || SubFolder == "Supplier")
            {
                HandleImageRequest(Request, Response, false, 0, SubFolder);
            }
            else if (AppUserId > 0 || IsAuthorizedRequest(Request, Response, true, out AppUserId))
            {
                HandleImageRequest(Request, Response, false, AppUserId, SubFolder);
            }
        }