Оператор WRITE
Оператор WRITE - создание действия, записывающего файл из свойства во внешний ресурс.
Синтаксис
WRITE [CLIENT [DIALOG]] fileExpr TO urlExpr [APPEND]
Описание
Оператор WRITE создает действие, записывающее файл из свойства, во внешний ресурс по заданному URL'у.
Поддерживаются следующие типы URL:
[file://]path_to_file
ftp://username:password[;charset]@host:port[/path_to_file][?param1=value1¶m2=value2&...]
ftps://username:password[;charset]@host:port[/path_to_file][?param1=value1¶m2=value2&...]
sftp://username:password[;charset]@host:port[/path_to_file]
Для ftp и ftps поддерживаются параметры запроса passivemode, binarytransfermode, datatimeout, connecttimeout.
Если в URL после последней точки уже стоит что-то похожее на расширение файла (стандартное MIME-расширение либо короткий — менее 4 символов — суффикс с преобладанием букв над цифрами), оно используется как есть. В противном случае точка . считается частью имени файла, и расширение определяется автоматически, в зависимости от класса записываемого файла, следующим образом:
| Расширение | Класс |
|---|---|
| читается из переданного объекта | FILE |
| json | JSONFILE |
| xml | XMLFILE |
| csv | CSVFILE |
| xls или xlsx в зависимости от содержимого файла | EXCELFILE |
| dbf | DBFFILE |
| table | TABLEFILE |
| html | HTMLFILE |
| doc или docx в зависимости от содержимого файла | WORDFILE |
| jpg | IMAGEFILE |
PDFFILE | |
| mp4 | VIDEOFILE |
На клиенте текущим директорием считается директорий Downloads внутри пользовательского директория.
Параметры
-
CLIENTКлючевое слово. Если указывается, то действие будет выполнено на клиенте. По умолчанию действие выполняется на сервере.
-
DIALOGКлючевое слово. Если указывается, то перед записью файла, будет показан диалог, в котором пользователь может изменить заданный URL. Можно использовать только при записи на диск (тип URL - file). По умолчанию диалог не показывается.
-
urlExprВыражение, значением которого является URL.
-
fileExprВыражение, значением которого является файл, который будет записан во внешний ресурс. Также допускаются значения JSON-типа: в этом случае значение сериализуется в файл с расширением
.json. -
APPENDКлючевое слово. Если указывается, то происходит дозапись файла из
fileExprв файл по указанномуurlExpr. Поддерживается только при записи в файловую систему (тип URL —file); дляftp,ftpsиsftpиспользованиеAPPENDвызывает ошибку. Также не допускается совместное использование сCLIENT DIALOG. Поведение по расширениям файла:- csv, txt — данные дописываются в конец файла;
- xls, xlsx — все листы из файла
fileExprкопируются в файл по указанномуurlExpr; - docx — содержимое документа
fileExprприсоединяется к документу по указанномуurlExpr; - pdf — страницы документа
fileExprприсоединяются к документу по указанномуurlExpr; - для остальных расширений не поддерживается.
Если файл по указанному
urlExprещё не существует, тоWRITEсAPPENDработает для любого типа файла: создается новый файл с содержимымfileExpr.По умолчанию происходит перезапись файла.
Примеры
loadAndWrite () {
INPUT f = FILE DO {
WRITE f TO 'file:///home/user/loadedfile.csv' APPEND;
WRITE CLIENT f TO '/home/user/loadedfile.txt';
WRITE CLIENT DIALOG f TO 'loadedfile';
}
}