Файловые операции на сервере

Материал из Oktell
Перейти к: навигация, поиск
Наверх Обмен пользовательскими сообщениями<<< Файловые операции на сервере >>>Запуск служебных сценариев

Методы для работы с файловой системой на сервере

  • string FileOperation ( string xml ). Выполняет перечисленные в параметре операции и возвращает в аналогичной структуре результаты выполнения. В простейшем случае параметр указывает единственную операцию. В общем виде последовательно выполняться может неограниченное число перечисленных операций.

Структура параметра-запроса:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data name="fileoperation" count="...">
   <property_set name="..." id="...">
     ...
   </property_set>
 ...........................................
 ...........................................
 ...........................................
   <property_set name="..." id="...">
     ...
   </property_set> 
 </data>
 </oktellcommapper>


Каждая вложенный блок property_set указывает на отдельную операцию. В простейшем случае соответственно этот блок присутствует в единственном экземпляре и весь параметр принимает вид:

<?xml version="1.0" encoding="utf-16"?>
 <oktellcommapper version="80710">
 <data name="fileoperation" count="1">
   <property_set name="..." id="...">
     ...
   </property_set>
 </data>
 </oktellcommapper>


Код идентификатора операции может не указываться. Он используется лишь для сопоставления операции в запросе и ответе во внешнем ПО.

Возвращаемое значение имеет вид, аналогичный параметру запроса. Каждая операция имеет свое представление в виде блока property_set, расположенного в том же месте, где и в запросе.

Структура ответа:

<?xml version="1.0" encoding="utf-16"?>
 <oktellxmlmapper version="80710">
 <data name="queryresult" count="...">
   <property_set name="..." id="...">
     <property_simple key="resultcode" value="..." name="..." />
     <property_cdata key="resultdescription"><![CDATA[...]]></property_cdata>
        ...
   </property_set>
 ...........................................
 ...........................................
 ...........................................
   <property_set name="..." id="...">
     <property_simple key="resultcode" value="..." name="..." />
     <property_cdata key="resultdescription"><![CDATA[...]]></property_cdata>
     ...
   </property_set> 
 </data>
 </oktellxmlmapper>


Существует несколько возможных операций. Каждая из них будет описана отдельно в этом разделе. В примерах запросов и ответов будет указана лишь составляющая часть XML-структуры, представляющая одну операцию.


Поддерживаемые файловые операции

  • uploadfiletoserver. Осуществляет запрос к серверу на закачку одного файла с клиента на сервер. Размещение осуществляется в указанном месте на сервере. Файл должен существовать в указанном месте клиентского компьютера.

Свойство localpath определяет абсолютный путь к файлу на клиентском компьютере. Свойство serverpath определяет путь на сервере, куда требуется загрузить файл. Может быть задан абсолютный путь или относительный (от каталога серверной службы) - в этом случае поле isrelative должно быть указано и иметь значение "1". Может быть указан полный путь к файлу (тогда исходное имя файла при сохранении теряется в пользу указанного), либо может быть указан путь к каталогу (тогда файл сохранится с исходным именем) - в этом случае поле isfolder должно быть указано и иметь значение "1".

Структура запроса:

<property_set name="uploadfiletoserver" id="...">
 <property_cdata key="localpath"><![CDATA[...]]></property_cdata>
 <property_cdata key="serverpath"><![CDATA[...]]></property_cdata>
 <property_simple key="isrelative" value="0" />
 <property_simple key="isfolder" value="0" />
 </property_set>

Ответ содержит стандартные поля resultcode и resultdescription, а также поле serverfilepath - возвращает полный путь к загруженному файлу на сервере (может быть необходим plugin-программе в случае, если используется загрузка по относительному пути).


  • downloadfilefromserver. Осуществляет запрос к серверу на скачивание одного файла с сервера на клиентский компьютер. Размещение осуществляется в указанном месте на локальной машине. Файл должен существовать в указанном месте серверного компьютера.

Свойство localpath определяет абсолютный путь к файлу на клиентском компьютере, куда следует разместить файл после загрузки с сервера. Свойство serverpath определяет путь на сервере, откуда требуется скачать файл. Может быть задан абсолютный путь или относительный (от каталога серверной службы) - в этом случае поле isrelative должно быть указано и иметь значение "1".

Структура запроса:

<property_set name="downloadfilefromserver" id="...">
 <property_cdata key="localpath"><![CDATA[...]]></property_cdata>
 <property_cdata key="serverpath"><![CDATA[...]]></property_cdata>
 <property_simple key="isrelative" value="0" />
 </property_set>

Ответ содержит стандартные поля resultcode и resultdescription, а также поле downloadresult - «1» в случае успешного закачивания файла, «0» в случае не обнаружения файла в указанном месте сервера.


  • deletefilefromserver. Осуществляет запрос к серверу на удаление одного файла с сервера. Файл должен существовать в указанном месте серверного компьютера.

Свойство serverpath определяет путь на сервере, откуда требуется скачать файл. Может быть задан абсолютный путь или относительный (от каталога серверной службы) - в этом случае поле isrelative должно быть указано и иметь значение "1".

Структура запроса:

<property_set name="deletefilefromserver" id="...">
 <property_cdata key="serverpath"><![CDATA[...]]></property_cdata>
 <property_simple key="isrelative" value="0" />
 </property_set>

Ответ содержит стандартные поля resultcode и resultdescription, а также поле deleteresult - «1» в случае успешного удаления файла, «0» в случае не обнаружения файла в указанном месте сервера или запрета на удаление.


  • showdirectoryonserver. Осуществляет запрос к серверу на получение структуры указанного каталога.

Свойство serverpath определяет путь на сервере к исследуемому каталогу, структуру которого требуется получить. Может быть задан абсолютный путь или относительный (от каталога серверной службы) - в этом случае поле isrelative должно быть указано и иметь значение "1". Установленные поля showfiles и showdirs определяют соответственно перечисление файлов и подкаталогов. Поле pattern определяет маску выборки элементов (например *.txt).

Структура запроса:

<property_set name="showdirectoryonserver" id="...">
 <property_cdata key="serverpath"><![CDATA[...]]></property_cdata>
 <property_simple key="isrelative" value="0" />
 <property_simple key="showfiles" value="1" />
 <property_simple key="showdirs" value="0" />
 <property_cdata key="pattern"><![CDATA[...]]></property_cdata>
 </property_set>


Ответ содержит стандартные поля resultcode и resultdescription, а также поле showdirectoryresult - «0» в случае отсутствия каталога по указанному пути, и «1» в случае успешного выполнения операции. Раздел consistence содержит перечисление обнаруженных элементов.

Структура ответа:

<property_set name="showdirectoryonserver" id="...">
 <property_simple key="resultcode" value="100" name="Success" />
 <property_simple key="resultdescription" value="Success" />
 <property_simple key="showdirectoryresult" value="1" name="success" />
 <property_collection name="consistence" count="2">
 <property_set name="directories">
   <property_cdata key="dir" value="0"><![CDATA[Subdir1]]></property_cdata> 
   <property_cdata key="dir" value="1"><![CDATA[Subdir2]]></property_cdata> 
   <property_cdata key="dir" value="2"><![CDATA[Subdir3]]></property_cdata> 
   <property_cdata key="dir" value="3"><![CDATA[Subdir4]]></property_cdata> 
 </property_set>
 <property_set name="files">
   <property_cdata key="file" value="0"><![CDATA[1.txt]]></property_cdata>
 </property_set>
        ................
 </property_collection>
 </property_set>


Наверх Обмен пользовательскими сообщениями<<< Файловые операции на сервере >>>Запуск служебных сценариев