如何使用XQuery和HTML将文件上载到MarkLogic?

如何使用XQuery和HTML将文件上载到MarkLogic?,html,xquery,marklogic,Html,Xquery,Marklogic,正如我的问题所述,我正在尝试使用XQuery和一个简单的HTML表单将文件上载到我的MarkLogic本地数据库。我已经连接到HTTP服务器 我的代码现在如下所示: 表格: 文档只是声明使用xdmp:documentinsert,但我不知道在哪里 是否有方法指定文件的来源以获取$fileLocation,或者是否需要其他方法来执行此操作 谢谢大家! 您的表单已发送文件名和文件数据。xdmp:get-request-field-filename'upload'返回浏览器发送的原始文件路径,xdmp

正如我的问题所述,我正在尝试使用XQuery和一个简单的HTML表单将文件上载到我的MarkLogic本地数据库。我已经连接到HTTP服务器

我的代码现在如下所示:

表格:

文档只是声明使用xdmp:documentinsert,但我不知道在哪里

是否有方法指定文件的来源以获取$fileLocation,或者是否需要其他方法来执行此操作


谢谢大家!

您的表单已发送文件名和文件数据。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)
  )