Amon2でアップロードされたファイルを受け取る。

html側は、まぁ普通なんで簡単に。

<form action="/myapp/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="hoge">
  <input type="submit" value="アップロード">
</form>

Amon2のControllerはこんな感じ。

sub upload {
    my ( $class, $c ) = @_;

    # 画像名(xxxxxx.jpg)
    $c->req->uploads->{'hoge'}->{'filename'};

    # 画像サイズ(123456789)
    $c->req->uploads->{'hoge'}->{'size'};

    # 画像タイプ(image/jpeg)
    $c->req->uploads->{'hoge'}->{'headers'}->{'content-type'};

    # tmpパス(/tmp/yyyyyyy.jpg)
    $c->req->uploads->{'hoge'}->{'tempname'}; 
}

特に処理は入れてませんが、上記のような感じで受け取れるので、あとはバリデートして、tempnameにあるファイルをDocumentRoot以下にコピーするとか、サムネイルを生成したりとか。