2016-01-18 3 views
1

Я пытаюсь использовать CKFinder в своем приложении .NET. Я не могу загрузить никаких загрузок, независимо от того, насколько большой или маленький файл, или какой тип файла он есть. Я дал всем полный контроль над папкой, которую CKFinder должен загружать (для целей тестирования), и она по-прежнему не работает. Это всегда дает мне ошибку «Загруженный файл поврежден». Не имеет значения, пытаюсь ли я запустить его локально на своей машине с Windows 7, или если я нажму вживую на машине Windows Server 2012 R2. Пожалуйста, помогите ... нет документации об этом, или я не могу найти ничего, что имеет отношение к этой ситуации. Заранее спасибо!CKFinder - Загруженный файл поврежден

ответ

6

Ответственность за вашу проблему несет Friendly URLs.

Если вы используете WebForms на .NET Framework 4 (или новее), убедитесь, что запросы к CKFinder не изменены WebFormsFriendlyUrlResolver.

Вы можете сделать это, отключив дружественные URL-адреса вообще или добавив свою собственную реализацию WebFormsFriendlyUrlResolver в метод EnableFriendlyUrls (обычно это делается в классе RouteConfig).

Пользовательская реализация WebFormsFriendlyUrlResolver может выглядеть следующим образом:

public class CKFinderWebFormsFriendlyUrlResolver : WebFormsFriendlyUrlResolver 
{ 
    public override string ConvertToFriendlyUrl(string path) 
    { 
     if (!string.IsNullOrEmpty(path) && path.ToLower().Contains("/editor/ckfinder")) 
     { 
      return path; 
     } 

     return base.ConvertToFriendlyUrl(path); 
    } 
} 
+0

Я установил это, но я не понимаю, как назвать это из моего метода RegisterRoutes. Первоначально у меня были маршруты.EnableFriendlyUrls (настройки). Вы можете помочь с этим? Я использую VB.NET. Я не могу понять эквивалент VB этого: routes.EnableFriendlyUrls (настройки, новый Microsoft.AspNet.FriendlyUrls.Resolvers.IFriendlyUrlResolver [] {new MyWebFormsFriendlyUrlResolver()}); –

3

Фигурные это в VB.NET. Вот код. Надеясь, что когда-нибудь он поможет кому-то еще!

Public Class MyWebFormsFriendlyUrlResolver 
    Inherits WebFormsFriendlyUrlResolver 

    Public Sub New() 

     MyBase.New() 

    End Sub 

    Public Overrides Function ConvertToFriendlyUrl(path As String) As String 

     If Not String.IsNullOrEmpty(path) And path.ToLower.Contains("/ckfinder") Then 

      Return path 

     End If 

     Return MyBase.ConvertToFriendlyUrl(path) 

    End Function 

End Class 

Public Class RouteConfig 

    Public Shared Sub RegisterRoutes(routes As RouteCollection) 

     routes.MapPageRoute("P", "P", "~/P.aspx")    

     Dim settings As FriendlyUrlSettings = New FriendlyUrlSettings() 
     settings.AutoRedirectMode = RedirectMode.Permanent 

     routes.EnableFriendlyUrls(settings, New Microsoft.AspNet.FriendlyUrls.Resolvers.IFriendlyUrlResolver() {New MyWebFormsFriendlyUrlResolver()}) 

    End Sub 

End Class 
Смежные вопросы