Есть такой замечательный, как мне кажется, файловый менеджер для веба под названием elFinder, который, также, интегрируется с WYSIWYG редактором elRTE.
Но, к сожалению, пользоваться им я не мог, потому что проекты у меня на ASP.Net / ASP.Net MVC, а т.н. «коннекторы» (то есть, серверная часть) были написаны на PHP и Python. Была идея написать свой, но сроки горели, и я использовал CKFinder. А тут вдруг на этих длинных выходных совершенно не хотелось вылазить из дома… и вот результат — коннектор, который я (и вы) можете использовать в своих дотнет приложениях. Если, конечно, не испугаетесь.)
Предлагаю вам зайти на elfinderconnectornet.codeplex.com и скачать там тестовый солюшен. Он состоит из двух проектов: Test.Web (собственно, наше веб-приложение) и ElFinder.Connector (собственно, коннектор). Естественно, вы можете просто добавить reference на библиотеку ElFinder.Connector.dll в своём проекте.
Поздравляю! Вы почти всё сделали! Осталось только кое-что добавить в Web.config (всё это, конечно, есть в Test.Web).
1. Добавляем хэндлер, который будет дергать elFinder
Нас интересует последняя строчка. Из неё вам должно стать понятно, что URL коннектора крайне прост: всё, что оканчивается на .connector
2. Добавляем хэндлер конфигурационной секции
3. Добавляем саму секцию
Вот, в общем-то, и всё. Дальше уже создаёте сам файндер, примерно так
… и всё работает.
На самом деле, не всё работает. Нет тамбнэйлов и ресайза изображений, редактирования текстовых файлов (в процессе). Все файлы и папки доступны на запись/чтение/удаление (честно говоря, просто не нашёл простого способа проверить права в .Net). Что-то не доделано ещё, но я либо сам доделаю, либо… код открытый.)
Пользуйтесь на здоровье!
UPD. 1 Естественно, не забудьте настроить безопасность (разрешить чтение/запись/удаление по желанию IIS_IUSRS или IUSR) для папки, в которой всё непотребство будет происходить.
UPD. 2 .Net Framework 3.5
UPD. 3 Оказалось, что в природе есть ещё один дотнет коннектор, но его автор не успел поведать о нём. Возможно, мы объединим усилия, что пойдёт только на пользу!
Но, к сожалению, пользоваться им я не мог, потому что проекты у меня на ASP.Net / ASP.Net MVC, а т.н. «коннекторы» (то есть, серверная часть) были написаны на PHP и Python. Была идея написать свой, но сроки горели, и я использовал CKFinder. А тут вдруг на этих длинных выходных совершенно не хотелось вылазить из дома… и вот результат — коннектор, который я (и вы) можете использовать в своих дотнет приложениях. Если, конечно, не испугаетесь.)
Установка и настройка
Предлагаю вам зайти на elfinderconnectornet.codeplex.com и скачать там тестовый солюшен. Он состоит из двух проектов: Test.Web (собственно, наше веб-приложение) и ElFinder.Connector (собственно, коннектор). Естественно, вы можете просто добавить reference на библиотеку ElFinder.Connector.dll в своём проекте.
Поздравляю! Вы почти всё сделали! Осталось только кое-что добавить в Web.config (всё это, конечно, есть в Test.Web).
1. Добавляем хэндлер, который будет дергать elFinder
<httpHandlers><br> ...<br> <add verb="*" path="*.connector" type="ElFinder.Connector.Connector"/><br></httpHandlers><br><br>* This source code was highlighted with Source Code Highlighter.
Нас интересует последняя строчка. Из неё вам должно стать понятно, что URL коннектора крайне прост: всё, что оканчивается на .connector
2. Добавляем хэндлер конфигурационной секции
<section name="ElFinder"<br> type="ElFinder.Connector.Configuration.ElFinderSection"<br> allowDefinition="Everywhere"<br> allowExeDefinition="MachineToApplication"<br> restartOnExternalChanges="true" /><br><br>* This source code was highlighted with Source Code Highlighter.
3. Добавляем саму секцию
<ElFinder uplMaxSize="10" dotFiles="true"><br> <Root Url="http://localhost:55599/files" Path="~/files" /><br> <DisabledCommands><br> <add Name="duplicate"/> <br> </DisabledCommands><br> <DisabledMimeTypes><br> <add Name="application/exe"/><br> <add Name="application/x-msdownload" /><br> </DisabledMimeTypes> <br> </ElFinder><br><br>* This source code was highlighted with Source Code Highlighter.
Вот, в общем-то, и всё. Дальше уже создаёте сам файндер, примерно так
<script type="text/javascript" charset="utf-8"><br> $(document).ready(function() {<br> $('#finder').elfinder({<br> url: 'test.connector',<br> lang: 'ru'<br> });<br> });<br> </script><br><br>* This source code was highlighted with Source Code Highlighter.
… и всё работает.
На самом деле, не всё работает. Нет тамбнэйлов и ресайза изображений, редактирования текстовых файлов (в процессе). Все файлы и папки доступны на запись/чтение/удаление (честно говоря, просто не нашёл простого способа проверить права в .Net). Что-то не доделано ещё, но я либо сам доделаю, либо… код открытый.)
Пользуйтесь на здоровье!
UPD. 1 Естественно, не забудьте настроить безопасность (разрешить чтение/запись/удаление по желанию IIS_IUSRS или IUSR) для папки, в которой всё непотребство будет происходить.
UPD. 2 .Net Framework 3.5
UPD. 3 Оказалось, что в природе есть ещё один дотнет коннектор, но его автор не успел поведать о нём. Возможно, мы объединим усилия, что пойдёт только на пользу!