2012-06-20 2 views
-1

Как загрузить несколько файлов в папку в xquery?Как загрузить несколько файлов в папку в xquery?

+0

Пожалуйста, объясните свой вопрос немного больше. Откуда берутся файлы? Какой механизм вы используете для загрузки их в MarkLogic? HTTP, XCC, QConsole? – derickson

+0

Я хочу загрузить с помощью управления загрузкой файлов. Пользователь должен иметь возможность загрузки нескольких или одного файла. И файл должен быть сохранен в Marklogic Server. –

+0

Я думаю, что он запрашивает эквивалент MarkLogic XQuery кода сервера Java для загрузки файлов, например http://commons.apache.org/fileupload/, в паре с браузером html/js для типа ввода типа = «файл». Iirc, иногда бывает много обмана браузера/клиентской стороны, а также необходимости использования кода на стороне сервера для правильной обработки заголовков HTTP - в идеале вы сможете получать поток для загрузки файлов, а не читать всю загрузку содержимое в память. –

ответ

2

Вы пытаетесь выполнить итерацию через каталог в файловой системе и вставить эти файлы в каком-либо месте в db, например?

for $e in xdmp:filesystem-directory('c:\my-files\')/dir:entry 
let $file := xdmp:filesystem-file($e/dir:pathname) 
let $dest-uri := concat('/dest-path/',$e/dir:filename) 
where ($e/dir:type eq 'file') 
return xdmp:document-insert($dest-uri,$file) 
+0

Вопрос непонятен, но похоже, что он пытается загрузить с клиента, а не с сервера. –

+0

Что будет в пространстве имен dir? – basari66

+0

@ rishabhv66 http://marklogic.com/xdmp/directory – wst

0

Вы должны взглянуть на Information Studio. Он предоставляет пользовательский интерфейс для загрузки и преобразования содержимого. Один из встроенных «коллекционеров» позволяет указать каталог файловой системы и рекурсивно загрузить его содержимое. Information Studio автоматически обрабатывает обход каталога и разбивает нагрузку на несколько транзакций, среди многих других удобств.

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