代码之家  ›  专栏  ›  技术社区  ›  Pouya

请求的URL在KendoEditor中返回403

  •  1
  • Pouya  · 技术社区  · 12 年前

    我在ASP.NET MVC中使用KendoUi我想使用Kendo.Editor()我编写此代码

    @(Html.Kendo().EditorFor(m => m)
    .HtmlAttributes(new { style = "width: 500px;height:300px" })
    .Tools(tools => tools.InsertImage())
    .ImageBrowser(imageBrowser => imageBrowser
                                    .Image("~/Uploads/Images/{0}")    
                                    .Read("Read", "ImageBrowser")
                                    .Create("Create", "ImageBrowser")
                                    .Destroy("Destroy", "ImageBrowser")
                                    .Upload("Upload", "ImageBrowser")
                                    .Thumbnail("Thumbnail", "ImageBrowser"))
    )
    

    和ImageBrowser控制器

     public partial class ImageBrowserController : EditorImageBrowserController
        {
            private const string contentFolderRoot = "~/Uploads/";
            private const string prettyName = "Images/";
            private static readonly string[] foldersToCopy = new[] { "~/Uploads/shared/" };
    
    
            /// <summary>
            /// Gets the base paths from which content will be served.
            /// </summary>
            public override string ContentPath
            {
                get
                {
                    return CreateUserFolder();
                }
            }
    
            private string CreateUserFolder()
            {
                var virtualPath = Path.Combine(contentFolderRoot, prettyName);
    
                var path = Server.MapPath(virtualPath);
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                    foreach (var sourceFolder in foldersToCopy)
                    {
                        CopyFolder(Server.MapPath(sourceFolder), path);
                    }
                }
                return virtualPath;
            }
    
            private void CopyFolder(string source, string destination)
            {
                if (!Directory.Exists(destination))
                {
                    Directory.CreateDirectory(destination);
                }
    
                foreach (var file in Directory.EnumerateFiles(source))
                {
                    var dest = Path.Combine(destination, Path.GetFileName(file));
                    System.IO.File.Copy(file, dest);
                }
    
                foreach (var folder in Directory.EnumerateDirectories(source))
                {
                    var dest = Path.Combine(destination, Path.GetFileName(folder));
                    CopyFolder(folder, dest);
                }
            }
        }
    

    当运行此View Kendo.Editor创建精细时。但当点击时 InsertImage 图标获取 The requested URL returned 403 错误

    编辑01:

    这样查看代码:

    @(Html.Kendo().EditorFor(model => model.TenderContent)
        .HtmlAttributes(new { style = "width: 500px;height:300px" })
    
        .Tools(tools => tools.InsertImage())
        .ImageBrowser(imageBrowser => imageBrowser
                                        .Image("~/Uploads/Images/{0}")
                                        .Read("Read", "ImageBrowser")
                                        .Create("Create", "ImageBrowser")
                                        .Destroy("Destroy", "ImageBrowser")
                                        .Upload("Upload", "ImageBrowser")
                                        .Thumbnail("Thumbnail", "ImageBrowser"))
                                    )
    

    解决方案图像: enter image description here

    请帮帮我,谢谢大家。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Lin    12 年前

    尝试添加 Clear() 之前 InsertImage() 如下所示:

    .Tools(tools => tools.Clear().InsertImage())
    

    此外,您需要确保以下路径正确 Uploads 文件夹直接位于项目下,它应该与 Content 文件夹

    "~/Uploads/Images/{0}"