在Mojolicious中下载文件

fluke4

简单的问题。我在mojolicious应用中生成了一个.doc文件。我要下载。这是我的问题,如何获取浏览器进行下载?

我正在使用CPAN模块MsOffice :: Word :: HTML :: Writer生成文档。

这是我的mojolicious应用程序中的子例程,它由Jquery中的Ajax请求调用:

sub down_doc {
  my $self = shift;

  my $doc = MsOffice::Word::HTML::Writer->new(
    title => "My new Doc",
    WordDocument => {View => 'Print'},
  );

  $doc->write("Content and Stuff");

  my $save = $doc->save_as("/docs/file.doc");

  $self->res->headers->content_disposition("attachment;filename=file.doc");
  $self->res->headers->content_type('application/msword');

  $self->render(data => $doc->content);
}

这是我在Jquery中的Ajax请求:

var request = $.ajax({
  url: "/down_doc",
  type: "post",
  data: {'data': data},
});

request.done(function(response, textStatus, jqXHR) {
  window.location.href = response;
});

我知道我的Ajax“完成”处理程序是错误的,我只是在尝试。如何使网页提示保存和下载.doc文件?

我是格林

在服务器端,这确实不是问题,但是,如果不使用(相对较新的)File API,就无法保存来自ajax请求的响应。我建议用一种临时形式替换ajax:

$('<form method="post" action="/down_doc">') 
    .append( 
       $('<input type="hidden" name="data">')
          .attr("value", JSON.stringify(data))
    )
    .appendTo('body') 
    .submit();

提交表单后,/ down_doc处理程序将使用适当的content-disposition标头和文档数据进行答复,浏览器将完成处理文件保存的工作。

如果您不打算在请求后使用服务器上的文件,则可以删除以下行:

my $save = $doc->save_as("/docs/file.doc");

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SPA中下载文件

来自分类Dev

在DoFn中下载文件

来自分类Dev

在 r 中下载文件

来自分类Dev

在Struts 2中下载文件

来自分类Dev

如何在Watir中下载文件?

来自分类Dev

如何在webView中下载文件?

来自分类Dev

无法在UpdatePanel中下载文件

来自分类Dev

如何在Codeigniter中下载文件?

来自分类Dev

在Android Webview中下载文件

来自分类Dev

避免在Python Urlopen中下载文件

来自分类Dev

从Jupyter Notebook在Voila中下载文件

来自分类Dev

从项目中下载文件

来自分类Dev

在Windows应用商店中下载文件

来自分类Dev

自动在Ruby中下载文件

来自分类Dev

在Struts 2中下载文件

来自分类Dev

在浏览器中下载文件

来自分类Dev

在django 1.7中下载文件

来自分类Dev

如何在Android中下载文件

来自分类Dev

使用UpdatePanel从流中下载文件

来自分类Dev

使用JavaScript在Safari中下载文件

来自分类Dev

如何在webView中下载文件?

来自分类Dev

无法在Django中下载文件

来自分类Dev

如何允许在 Webview 中下载文件?

来自分类Dev

如何允许在 drupal 中下载文件?

来自分类Dev

R中下载文件时出错

来自分类Dev

如何从强制下载的链接中下载文件

来自分类Dev

在vb中下载文件之前获取文件大小

来自分类Dev

wget从文件列表中下载文件,如何为每个下载文件指定名称?

来自分类Dev

如何使用Selenium在点击事件中下载文件?