« 合宿は楽しい? | メイン | 合宿途中経過 »

SoozyのEngine化 #3

file upload周りの互換性チェックを軽くしてみたところ、そのまま動きそうなのでやる事無かった。

PluginはJSONとSession::State::Cookieが過去のRequest API使ってるけど、今のところ吸収されてるので放置しておく。

互換性一通り取れてそうなのでsvk pushした
http://trac.yappo.jp/trac/changeset/278
なんかコメントが酷い事になってる。。。

Catalystからコードを流用したお陰で、ファイルアップロードしてデータをすぐに表示するといった用途が楽に書けるようになった。

template/tt/default/default.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>EngineTest - Default on Soozy</title>
</head>
<body>
<h1>Hello! EngineTest - Default default</h1>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><input type="submit" />
</form>
</body>
</html>
とテンプレートを書いて置いて

lib/EngineTest/C/Default.pm

package EngineTest::C::Default;
use strict;
use warnings;
use base qw( EngineTest );

sub do_default {}
sub do_upload {
my $self = shift;
my $upload = $self->req->upload('file');
return $self->forward('default') unless $upload;

$self->res->content_type($upload->type);
$self->res->body($upload->fh);
$self->handle_view('');
}
1;

とコントローラを書くと、アップロードしたファイルを直ぐに表示できる。

用途は全くないけど!

トラックバック

このエントリーのトラックバックURL:
http://blog.infomarks.co.jp/cgi-bin/mt3/mt-tb.cgi/29

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年03月02日 18:30に投稿されたエントリーのページです。

ひとつ前の投稿は「合宿は楽しい?」です。

次の投稿は「合宿途中経過」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34