2011-11-07 14 views
2

フロントエンドのJumploaderアプレットを使用してファイルをアップロードするには、Catalyst Request Uploadを使用しています。 10k程度以下のファイルはすべて問題ありません。しかし、ファイルが大きければ、私は最後にアップロードされた "チャンク"しか取得しません。 Data::Dumperを使うと、「10kビット」がアップロードされ、各部分がランダムな一時ディレクトリに置かれているのがわかります。私の質問は、ファイル全体をアップロードする方法であり、分割されていないのですか?Catalystリクエストのアップロード - ファイルの切り詰め

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': $!"); 
    } 
} 

ありがとうございました。

+0

アップロードの内容をどのように読んでくださいか教えてください。 – yko

答えて

1

デフォルトでCatalyst(Catalyst :: Request :: Uploadによって行われる)のアップロードは、HTTPから送信されたコンテンツを読み込み、tmpファイルに保存します。

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

多分、Jumploaderが複数のHTTPリクエストを含む大きなファイルを送信している可能性があります。したがって、何が起きているのかを見るためにはデバッグする必要があります。

"-d"でサーバを起動したり、CATALYST_DEBUG=1のenvをエクスポートすることができます。大きなファイルを1つ送信して、触媒に行われた要求の数を確認します。

それが複数の場合、Jumploaderは、すべての部分を結合するために「アップロードファイルID」のようなリクエストとともに何かを送信することがあります。

関連する問題