示例#1
0
        public void ProcessRequest(HttpContext context)
        {
            var fileName  = String.Empty;
            var timeStamp = context.Request["timeStamp"];
            var imageType = context.Request["imageType"] == "loginlogo"
                ? UploadImageTypes.LoginLogo
                : context.Request["imageType"] == "mainlogo"
                    ? UploadImageTypes.MainScreenLogo
                    : context.Request["imageType"] == "favicon"
                        ? UploadImageTypes.Favicon
                        : UploadImageTypes.ProfilePicture;

            if (imageType != UploadImageTypes.ProfilePicture)
            {
                var targetFolder = GlobalAppSettings.GetApplicationImagesPath();

                if (!Directory.Exists(targetFolder))
                {
                    Directory.CreateDirectory(targetFolder);
                }
                var file = context.Request.Files[0];
                if (file.ContentLength != 0)
                {
                    switch (imageType)
                    {
                    case UploadImageTypes.LoginLogo:
                        fileName = "login_logo_" + timeStamp + ".png";
                        break;

                    case UploadImageTypes.MainScreenLogo:
                        fileName = "main_logo_" + timeStamp + ".png";
                        break;

                    case UploadImageTypes.Favicon:
                        fileName = "favicon_" + timeStamp + ".png";
                        break;
                    }
                    var binaryReader = new BinaryReader(file.InputStream);
                    var memoryBytes  = binaryReader.ReadBytes(file.ContentLength);
                    using (var memoryStream = new MemoryStream(memoryBytes))
                    {
                        var imageStream = Image.FromStream(memoryStream);
                        if (imageType == UploadImageTypes.Favicon)
                        {
                            imageStream.Save(targetFolder + "\\" + fileName, ImageFormat.Png);
                        }
                        else if (imageType == UploadImageTypes.MainScreenLogo)
                        {
                            var resizedImage = ImageManager.ResizeImage(imageStream, 40, 40);
                            resizedImage.Save(targetFolder + "\\" + fileName, ImageFormat.Png);
                        }
                        else
                        {
                            var resizedImage = ImageManager.ResizeImage(imageStream, 200, 120);
                            resizedImage.Save(targetFolder + "\\" + fileName, ImageFormat.Png);
                        }
                    }
                }
            }
            else
            {
                var targetFolder = GlobalAppSettings.GetProfilePicturesPath();

                var file = context.Request.Files[0];

                if (!Directory.Exists(targetFolder))
                {
                    Directory.CreateDirectory(targetFolder);
                }

                if (file.ContentLength != 0)
                {
                    if (Directory.Exists(targetFolder + "\\" + context.Request["userName"]) == false)
                    {
                        Directory.CreateDirectory(targetFolder + "\\" + context.Request["userName"]);
                    }

                    if (File.Exists(targetFolder + "\\" + context.Request["userName"] + "\\" + "profile_picture_" + timeStamp + ".png"))
                    {
                        File.Delete(targetFolder + "\\" + context.Request["userName"] + "\\" + "profile_picture_" + timeStamp + ".png");
                    }
                    var binaryReader = new BinaryReader(file.InputStream);
                    var memoryBytes  = binaryReader.ReadBytes(file.ContentLength);
                    using (var memoryStream = new MemoryStream(memoryBytes))
                    {
                        var imageStream = Image.FromStream(memoryStream);
                        imageStream.Save(targetFolder + "\\" + context.Request["userName"] + "\\" + "profile_picture_" + timeStamp + ".png", ImageFormat.Png);
                    }
                }
            }
        }