【问题标题】:Catalyst Request Upload - Truncating FilesCatalyst 请求上传 - 截断文件
【发布时间】:2011-11-07 14:56:55
【问题描述】:

我正在使用 Catalyst 请求上传通过前端的 Jumploader 小程序上传文件。对于 10k 左右的文件,一切都很好。但如果文件更大,我只会得到最后上传的“块”。使用Data::Dumper,我可以看到“10k 位”被上传,并且每一块都放在一个随机的临时目录中。我的问题是如何上传整个文件而不是将其分解?

if ( my $upload = $c->request->upload('file') ) { 
    my $filename = $upload->filename;
    $target = "$file_path/$campaign/$filename";
    unless ( $upload->link_to($target) || $upload->copy_to($target) ) { 
        die( "Failed to copy '$filename' to '$target': $!" );
    }   
}

感谢您的帮助。

【问题讨论】:

  • 您能解释一下您是如何阅读上传内容的吗?

标签: perl upload request catalyst


【解决方案1】:

默认情况下,催化剂中的上传(由 Catalyst::Request::Upload 完成)读取从 HTTP 发送的内容并将它们保存到 tmp 文件中。

$c->request->upload('file') 

也许 Jumploader 正在使用多个 HTTP 请求发送更大的文件。所以你需要调试看看发生了什么。

您可以使用“-d”启动服务器或导出CATALYST_DEBUG=1 env。然后发送一个大文件,查看对催化剂完成的请求数。

如果不止一个,Jumploader 可能会随请求发送一些内容,例如“上传文件 ID”,以便您将所有部分粘合在一起。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2021-08-10
    • 2019-05-20
    • 2010-09-25
    • 2019-08-06
    相关资源
    最近更新 更多