下载文件,文件名

蒂斯

我想为浏览器提供文件下载功能,我可以使用来设置文件名XQuery在此示例中,我将文件名设置为“ example.txt ”。

输出文件名是:“ docmaker ”,这不是我想要的。

完成此操作的正确标头配置是什么?

declare 
%roxy:params("ID=xs:number")
function strlf:get(
$context as map:map,
$params  as map:map
) as document-node()*
{
map:put($context, "output-types", "application/csv"),
map:put($context, "Content-Disposition", 'attachment; filename="example.txt"'),
xdmp:set-response-code(200, "OK"),
    document {
          try {
              let $id := map:get($params,"ID")

              let $query := 
                if (fn:empty($id)) 
                then ()
                else cts:element-range-query(xs:QName("jbasic:ID"),"=",(fn:number($id)))

                for $doc in cts:search(fn:doc(), cts:and-query((cts:directory-query("/app/docmaker/"),$query)), ('unfiltered'))

                return $doc//jbasic:Text/text()

          }
          catch ($e) {
            element error { $e/error:message }
          }
    }
};  
grtjn

查看文档,REST扩展内支持Content-Disposition标头或任何其他自定义标头:

http://docs.marklogic.com/guide/rest-dev/extensions#id_84661

我也看不到其他解决方法。内置文档端点不提供其自身的下载功能,并且转换都经过相同的框架,因此也不起作用。

我建议您申请RFE。这可能对您个人没有帮助(您必须等待下一个版本),但将来可能对其他用户有用。

**更新**

@mblakele的建议在一个有效的示例下面起作用。我不愿意推荐它。add-response-header有效,但是set-response-code不起作用。REST-API将覆盖它。以后使用add-response-header调用可能会发生同样的情况。

xquery version "1.0-ml";

module namespace ext = "http://marklogic.com/rest-api/resource/download";

declare default function namespace "http://www.w3.org/2005/xpath-functions";

declare namespace roxy = "http://marklogic.com/roxy";
declare namespace xs = "http://www.w3.org/2001/XMLSchema";

declare option xdmp:mapping "false";

declare
%roxy:params("ID=xs:number")
function ext:get(
  $context as map:map,
  $params  as map:map
) as document-node()*
{
  map:put($context, "output-types", "application/csv"),
  xdmp:add-response-header("Content-Disposition", 'attachment; filename="example.txt"'),
  xdmp:set-response-code(300, "OK"),
  document {
    try {
      doc()[1]
    } catch ($e) {
      element error { $e/error:message }
    }
  }
};

HTH!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

下载文件,文件名

来自分类Dev

从NSURLSession下载文件名

来自分类Dev

下载文件时如何设置文件名?

来自分类Dev

如何下载文件名已更改的文件?

来自分类Dev

下载文件时不知道文件名

来自分类Dev

使用PowerShell读取下载文件的文件名

来自分类Dev

DataTables下载文件名出现问题

来自分类Dev

Chrome嵌入式PDF下载文件名

来自分类Dev

expressjs下载文件名utf-8

来自分类Dev

如何在C#中下载文件名?

来自分类Dev

vertx Java 下载文件名特殊字符

来自分类Dev

使用ServiceStack HttpResult下载文件:如何为下载的内容指定文件名?

来自分类Dev

SharePoint 2013:“下载副本”会缩小下载文件的文件名

来自分类Dev

perl重载文件名下载

来自分类Dev

Ubuntu 13.10 Server:wget自动更改下载文件的文件名

来自分类Dev

使用Java下载文件时如何获取原始文件名

来自分类Dev

如何在url中传递长文件名并使用php函数下载文件?

来自分类Dev

使用FtpWebRequest下载文件时获取文件名而不是内容

来自分类Dev

Safari 5.1.7下载文件名未知的csv文件

来自分类Dev

Firebase Storage Android:如何更改下载文件的文件名?

来自分类Dev

使用URL /标题文件名的PowerShell Core下载文件

来自分类Dev

下载文件之前如何从链接中获取文件名?

来自分类Dev

c#尝试使用WebClient下载文件名中包含特殊字符的文件

来自分类Dev

在Internet Explorer中直接打开下载文件时出现文件名问题

来自分类Dev

使用ftplib下载文件名中带有空格的文件

来自分类Dev

从AngularJS的服务器下载文件时如何更改文件名

来自分类Dev

Ubuntu 13.10 Server:wget自动更改下载文件的文件名

来自分类Dev

以非英语语言显示文件名,以供Struts2动态下载文件

来自分类Dev

在FTP中使用正则表达式获取文件名以下载文件

Related 相关文章

  1. 1

    下载文件,文件名

  2. 2

    从NSURLSession下载文件名

  3. 3

    下载文件时如何设置文件名?

  4. 4

    如何下载文件名已更改的文件?

  5. 5

    下载文件时不知道文件名

  6. 6

    使用PowerShell读取下载文件的文件名

  7. 7

    DataTables下载文件名出现问题

  8. 8

    Chrome嵌入式PDF下载文件名

  9. 9

    expressjs下载文件名utf-8

  10. 10

    如何在C#中下载文件名?

  11. 11

    vertx Java 下载文件名特殊字符

  12. 12

    使用ServiceStack HttpResult下载文件:如何为下载的内容指定文件名?

  13. 13

    SharePoint 2013:“下载副本”会缩小下载文件的文件名

  14. 14

    perl重载文件名下载

  15. 15

    Ubuntu 13.10 Server:wget自动更改下载文件的文件名

  16. 16

    使用Java下载文件时如何获取原始文件名

  17. 17

    如何在url中传递长文件名并使用php函数下载文件?

  18. 18

    使用FtpWebRequest下载文件时获取文件名而不是内容

  19. 19

    Safari 5.1.7下载文件名未知的csv文件

  20. 20

    Firebase Storage Android:如何更改下载文件的文件名?

  21. 21

    使用URL /标题文件名的PowerShell Core下载文件

  22. 22

    下载文件之前如何从链接中获取文件名?

  23. 23

    c#尝试使用WebClient下载文件名中包含特殊字符的文件

  24. 24

    在Internet Explorer中直接打开下载文件时出现文件名问题

  25. 25

    使用ftplib下载文件名中带有空格的文件

  26. 26

    从AngularJS的服务器下载文件时如何更改文件名

  27. 27

    Ubuntu 13.10 Server:wget自动更改下载文件的文件名

  28. 28

    以非英语语言显示文件名,以供Struts2动态下载文件

  29. 29

    在FTP中使用正则表达式获取文件名以下载文件

热门标签

归档