我有一个xquery端点,它使用xdmp:document-insert ...加载进入数据库的文件,这在尝试上传具有“ISO-8859-1”编码的XML文档时失败。以下是我的代码
declare %rapi:transaction-mode("update") function repoLoad:post($context as map:map, $params as map:map,$input as document-node()*) as document-node()*
{
let $filename := xdmp:get-request-field-filename("upload")
let $contentType := xdmp:get-request-field-content-type("upload")
let $uri := "/documents/"
let $_ := xdmp:document-insert($uri, xdmp:get-request-field("upload"),(xdmp:default-permissions()), ("raw"))
return $uri
};
这对于非UTF8编码的xml文档失败。我得到以下异常..任何解决方法??
错误:AppRequestTask :: run:XDMP-DOCUTF8SEQ:无效的UTF-8转义 第1行的序列 - 文档不是UTF-8编码的
答案 0 :(得分:2)
如果您可以使用声明编码的XML序言生成有效负载,则应该有效:
<?xml version="1.0" encoding="ISO-8859-1">
... rest of the document ...
否则,您可以尝试在服务器上执行以下操作以生成要插入的XML文档:
xdmp:document-insert(
$uri,
xdmp:binary-decode(
xdmp:unquote(
xdmp:get-request-field("upload"), (), "format-binary"
),
"ISO-8859-1"
),
... collection, permissions, and other arguments ...
)
希望有帮助,