public void Process(UploadArgs args)
        {
            Assert.ArgumentNotNull((object)args, nameof(args));
            if (args.Destination == UploadDestination.File)
            {
                return;
            }

            foreach (string file1 in args.Files)
            {
                HttpPostedFile file2 = args.Files[file1];
                if (!string.IsNullOrEmpty(file2.FileName))
                {
                    if (UploadProcessor.IsUnpack(args, file2))
                    {
                        ZipReader zipReader = new ZipReader(file2.InputStream);
                        try
                        {
                            foreach (ZipEntry entry in zipReader.Entries)
                            {
                                if (!entry.IsDirectory && !UploadFileSettings.IsAllowedFile(entry.Name, entry.Size))
                                {
                                    string text = file2.FileName + "/" + entry.Name;
                                    args.UiResponseHandlerEx.FileTooBigForUpload(StringUtil.EscapeJavascriptString(text));
                                    args.ErrorText = UploadFileSettings.FileErrorMessage(file2.FileName);
                                    args.AbortPipeline();
                                    return;
                                }
                            }
                        }
                        finally
                        {
                            file2.InputStream.Position = 0L;
                        }
                    }
                    else if (!UploadFileSettings.IsAllowedFile(file2))
                    {
                        string fileName = file2.FileName;

                        if (HttpContext.Current.Request.Url.AbsolutePath != "/sitecore/shell/api/sitecore/Media/Upload")
                        {
                            args.UiResponseHandlerEx.FileTooBigForUpload(StringUtil.EscapeJavascriptString(fileName));
                        }
                        args.ErrorText = UploadFileSettings.FileErrorMessage(file2.FileName);
                        args.AbortPipeline();
                        break;
                    }
                }
            }
        }
        public void Process(AttachArgs args)
        {
            if (UploadFileSettings.IsAllowedFile(args.FileWrapper))
            {
                return;
            }

            string errorMessage = UploadFileSettings.FileErrorMessage(args.FileWrapper.FileName);


            HttpContext.Current.Response.Write(
                "<html><head><script type=\"text/JavaScript\" language=\"javascript\">window.top.scForm.getTopModalDialog().frames[0].scForm.postRequest(\"\", \"\", \"\", 'ShowAlert(\"" +
                errorMessage + "\")')</script></head><body>Done</body></html>");

            args.AbortPipeline();
        }
Exemplo n.º 3
0
        public static void ResaveImage(FineUpload upload, string filename, UploadFileSettings settings = null)
        {
            // в некоторые типы картинок можно запихать код для исполнения, чтобы пресечь это, необходимо пересохранить кратинку
            using (var img = Image.FromStream(upload.InputStream))
            {
                // подготовка картинки к сохраниению, рисуем ватермарки и тыды
                if (settings != null && settings.IsImage)
                {
                    if (settings.Watermarks.Any(watermarkSettings => watermarkSettings.FillType != WatermarkFillType.None))
                    {
                        using (var g = Graphics.FromImage(img))
                        {
                            foreach (var wm in settings.Watermarks)
                            {
                                using (var wmImage = Image.FromFile(HttpContext.Current.Server.MapPath(wm.RelativePath)))
                                {
                                    var k = 1.0;
                                    if ((wm.ReduceWidth.HasValue && img.Width <= wm.ReduceWidth.Value) || (wm.ReduceHeight.HasValue && img.Height <= wm.ReduceHeight.Value))
                                    {
                                        k = wm.ReduceFactor;
                                    }
                                    var width  = wmImage.Width / k;
                                    var height = wmImage.Height / k;
                                    if (wm.FillType == WatermarkFillType.Mosaic)
                                    {
                                        var cY = 0;
                                        while (cY < img.Height)
                                        {
                                            var cX = 0;
                                            while (cX < img.Width)
                                            {
                                                g.DrawImage(wmImage, new Rectangle(cX, cY, (int)width, (int)height));
                                                cX += wmImage.Width;
                                            }
                                            cY += wmImage.Height;
                                        }
                                    }
                                    else
                                    {
                                        // координаты на исходном изображении куда выводить ватермарк
                                        var left = 0.0;
                                        var top  = 0.0;
                                        switch (wm.FillType)
                                        {
                                        case WatermarkFillType.TopLeft:
                                            left = wm.Margins.Left / k;
                                            top  = wm.Margins.Top / k;
                                            break;

                                        case WatermarkFillType.TopRight:
                                            left = img.Width - wm.Margins.Right / k - width;
                                            top  = wm.Margins.Top / k;
                                            break;

                                        case WatermarkFillType.BottomLeft:
                                            left = wm.Margins.Left / k;
                                            top  = img.Height - wm.Margins.Bottom / k - height;
                                            break;

                                        case WatermarkFillType.BottomRight:
                                            left = img.Width - wm.Margins.Right / k - width;
                                            top  = img.Height - wm.Margins.Bottom / k - height;
                                            break;

                                        case WatermarkFillType.Center:
                                            left = (img.Width - width) / 2;
                                            top  = (img.Height - height) / 2;
                                            break;

                                        case WatermarkFillType.Stretch:
                                            left   = wm.Margins.Left / k;
                                            top    = wm.Margins.Top / k;
                                            width  = img.Width - wm.Margins.Right / k;
                                            height = img.Height - wm.Margins.Bottom / k;
                                            break;

                                        case WatermarkFillType.Custom:
                                            left   = wm.Left + wm.Margins.Left;
                                            top    = wm.Top + wm.Margins.Top;
                                            width  = wm.Width == 0 ? wmImage.Width : wm.Width;
                                            height = wm.Height == 0 ? wmImage.Height : wm.Height;
                                            break;

                                        default:
                                            throw new ArgumentOutOfRangeException();
                                        }
                                        g.DrawImage(wmImage, new Rectangle((int)left, (int)top, (int)width, (int)height));
                                    }
                                }
                            }
                        }
                    }
                }
                SaveByExt(img, filename);
            }
        }
Exemplo n.º 4
0
        public System.Web.WebPages.HelperResult RenderScript(UploadFileSettings upload, IFileEntity file)
        {
#line default
#line hidden
            return(new System.Web.WebPages.HelperResult(__razor_helper_writer => {
#line 74 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"



#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "    ");

                WriteLiteralTo(__razor_helper_writer, "\r\n        files[\"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, upload.Name);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "_array\"].files.push(new FileItem({ Id: ");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.Id);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, ", Url: \"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, Url.Content(file.Name));


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\", SourceName: \"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.SourceName);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\", Alt: \"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.Alt);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\", Title: \"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.Title);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\", Description: \"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.Description);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\", Date: \"");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.Date);


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, "\", Visibility: ");


#line 76 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
                WriteTo(__razor_helper_writer, file.Visibility.ToString().ToLower());


#line default
#line hidden
                WriteLiteralTo(__razor_helper_writer, " }));\r\n    ");

                WriteLiteralTo(__razor_helper_writer, "\r\n");


#line 78 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"


#line default
#line hidden
            }));

#line 78 "..\..\Areas\Admin\Views\Shared\EditorTemplates\ozi_File.cshtml"
        }