13

perl に基づく Mojolicious Web フレームワークを試しています。そして、Lite の代わりに完全なアプリケーションを開発しようとしました。私が直面している問題は、ファイルをサーバーにアップロードしようとしていることですが、以下のコードが機能していません。

何が悪いのか教えてください。また、ファイルがアップロードされた場合、それはアプリケーションのパブリック フォルダーまたは他の場所にあります。

前もって感謝します。

sub posted {
 my $self = shift;
 my $logger = $self->app->log;

 my $filetype = $self->req->param('filetype');
 my $fileuploaded = $self->req->upload('upload');

 $logger->debug("filetype: $filetype");
 $logger->debug("upload: $fileuploaded");

 return $self->render(message => 'File is not available.')
  unless ($fileuploaded);

 return $self->render(message => 'File is too big.', status => 200)
   if $self->req->is_limit_exceeded;

 # Render template "example/posted.html.ep" with message
 $self->render(message => 'Stuff Uploaded in this website.');
}
4

3 に答える 3

9

(まず、method="post"enctype="multipart/form-data"、およびをinput type="file"含むHTMLフォームが必要name="upload"です。念のために。)

エラーがなかった場合は、$fileuploadedになりますMojo::Upload。次に、そのサイズとヘッダーを確認したり、を使用して丸呑みしたり移動したりできます$fileuploaded->move_to('path/file.ext')

奇妙な例から取られました。

于 2012-04-14T17:09:04.887 に答える
-1

Mojolicious::Plugin::RenderFile を使用できます

Mojolicious::Plugin::RenderFile

于 2013-04-25T14:46:13.943 に答える