Perl CGI::应用程序::插件:流 + Jquery Taconite 插件 - 无法下载文件

发布于 2024-07-26 01:52:55 字数 879 浏览 8 评论 0原文

我在运行模式下使用 CGI::Application 的 Stream (qw/stream_file/) 插件从文件系统读取文件并将其流式传输回用户。

用户单击一个链接,我在使用 Jquery 的 ajax 调用中使用其“id”属性来获取文件 (/?mode=get_file&fileid=)。

我还使用 Jquery taconite 插件来更新应用程序其他部分的页面内容; 但我没有在 get_file 运行模式中返回任何 xml,如下所示:


sub get_file{
  my $self = shift;
  my $fileid=$self->query->param("fileid");
  $self->header_add( -attachment => $fileid );
  $self->header_add( -type => "application/x-download");
  if ( $self->stream_file( $fileid ) ) {
        return;
  } else {
        return $self->error_mode();
  }
}

结果是:

  • 文件确实按预期进行流式传输(Firebug 告诉我是这样)
  • 标头似乎没问题(如 Firebug 中所示)

我的问题是:

  • 文件内容永远不会以可下载的文件形式呈现给我。

我怀疑 taqconite 插件以某种方式删除了标头。 即便如此,我也不确定解决这个问题的最佳方法。

任何想法都会非常有帮助。

谢谢 /英尺

I am using the Stream (qw/stream_file/) Plugin for CGI::Application within a runmode to read a file from the filesystem and stream it back to the user.

The user clicks on a link whose "id" attribute I use in an ajax call using Jquery to fetch the file (/?mode=get_file&fileid=<someid>).

I am also using the Jquery taconite plugin to update page contents in other parts of my application; but I do not return any xml in the get_file runmode, which looks like this:


sub get_file{
  my $self = shift;
  my $fileid=$self->query->param("fileid");
  $self->header_add( -attachment => $fileid );
  $self->header_add( -type => "application/x-download");
  if ( $self->stream_file( $fileid ) ) {
        return;
  } else {
        return $self->error_mode();
  }
}

The result is:

  • The file does get streamed as expected (Firebug tells me so)
  • The headers seem alright (As seen in Firebug)

My problem is:

  • The file contents are never presented to me as a file that can be downloaded.

My suspicion was that the taqconite plugin somehow removes the headers. Even so, I'm not sure of the best way to solve it.

Any ideas would be most helpful.

Thanks
/ft

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何时共饮酒 2024-08-02 01:52:55

在我弄清楚这个问题之前,我只是使用直接链接来下载该文件。 (即没有 xmlhttp)以避免 Jquery httpdata 路由。

Until I can figure this one out, I'm just going with a direct link to download the file. (i.e No xmlhttp) to avoid the Jquery httpdata route.

彼岸花ソ最美的依靠 2024-08-02 01:52:55

如果文件正在流式传输,那么文件会去哪里?

Where is the file going then, if it's being streamed?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文