如何使用XQuery和HTML将文件上载到MarkLogic?
正如我的问题所述,我正在尝试使用XQuery和一个简单的HTML表单将文件上载到我的MarkLogic本地数据库。我已经连接到HTTP服务器 我的代码现在如下所示: 表格: 文档只是声明使用xdmp:documentinsert,但我不知道在哪里 是否有方法指定文件的来源以获取$fileLocation,或者是否需要其他方法来执行此操作如何使用XQuery和HTML将文件上载到MarkLogic?,html,xquery,marklogic,Html,Xquery,Marklogic,正如我的问题所述,我正在尝试使用XQuery和一个简单的HTML表单将文件上载到我的MarkLogic本地数据库。我已经连接到HTTP服务器 我的代码现在如下所示: 表格: 文档只是声明使用xdmp:documentinsert,但我不知道在哪里 是否有方法指定文件的来源以获取$fileLocation,或者是否需要其他方法来执行此操作 谢谢大家! 您的表单已发送文件名和文件数据。xdmp:get-request-field-filename'upload'返回浏览器发送的原始文件路径,xdmp
谢谢大家! 您的表单已发送文件名和文件数据。xdmp:get-request-field-filename'upload'返回浏览器发送的原始文件路径,xdmp:get-request-field'upload'将获取数据。我认为您正在寻找类似于:
let $filename := xdmp:get-request-field-filename("upload")
let $file := xdmp:get-request-field("upload")
let $collection := "semansysdocs"
return
xdmp:document-insert(
$filename,
$file,
xdmp:default-permissions(),
(xdmp:default-collections(), $collection)
)
嗯 您希望xdmp:document insert加载内存中已存在的节点,而不是xdmp:document load从本地文件系统加载。谢谢,现在我如何更改上下文类型。它会自动以txt类型上传所有内容,这值得一提。这也会给你空间详细说明你上传的文件,以及你要插入的内容。。
let $filename := xdmp:get-request-field-filename("upload")
let $collection := "semansysdocs"
let $fileLocation := xdmp:get-request-path()
return
xdmp:document-load($fileLocation,
map:map() => map:with("uri", $filename)
=> map:with("permissions", xdmp:default-permissions())
=> map:with("collections", $collection)
)
let $filename := xdmp:get-request-field-filename("upload")
let $file := xdmp:get-request-field("upload")
let $collection := "semansysdocs"
return
xdmp:document-insert(
$filename,
$file,
xdmp:default-permissions(),
(xdmp:default-collections(), $collection)
)