KENT-WEB サポートコーナー 過去ログ [ 0136 ]


記事No: 9543
投稿日: 2011/11/04(Fri) 10:06:33
タイトルFile Uploder v1.2 最大投稿サイズ
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

CGI.pmを利用していたv1.0は20MBのファイルでもアップ可能でしたがv1.2は3MBを超えるファイルはアップできないようです。
アップロード型掲示板は画像が中心ですので3MBでも問題ないと思いますが、ファイルアップローダーの場合は動画や音声ファイルも扱うと思いますのでいかがなものでしょうか。


記事No: 9550
投稿日: 2011/11/05(Sat) 07:41:43
タイトルRe: File Uploder v1.2 最大投稿サイズ
ID情報: kent
投稿者: KENT

> CGI.pmを利用していたv1.0は20MBのファイルでもアップ可能でしたがv1.2は3MBを超えるファイルはアップできないようです。
> アップロード型掲示板は画像が中心ですので3MBでも問題ないと思いますが、ファイルアップローダーの場合は動画や音声ファイルも扱うと思いますのでいかがなものでしょうか。

デフォルトの容量サイズのことですね?
現在は500KBにしてますね。

# 1回当りの最大投稿サイズ (Bytes)
# [参考] 512000 = 500KB
# [注意] この値を大きくするとサーバに過負荷がかかります。
$cf{maxdata} = 512000;

次バージョンから、もう少し大きくするようにしましょう。


記事No: 9554
投稿日: 2011/11/05(Sat) 09:08:41
タイトルRe^2: File Uploder v1.2 最大投稿サイズ
ID情報: Fuyuki
投稿者: BAL
URLhttp://f43.aaa.livedoor.jp/~sumure/

> デフォルトの容量サイズのことですね?
> 現在は500KBにしてますね。
>
> # 1回当りの最大投稿サイズ (Bytes)
> # [参考] 512000 = 500KB
> # [注意] この値を大きくするとサーバに過負荷がかかります。
> $cf{maxdata} = 512000;
>
> 次バージョンから、もう少し大きくするようにしましょう。


質問の意味を勘違いされてるようですね^^;

CGI.pmとCGI::Minimalでは1回当たりの最大投稿量に差があると言うことなんですが。


記事No: 9561
投稿日: 2011/11/06(Sun) 18:56:31
タイトルRe^3: File Uploder v1.2 最大投稿サイズ
ID情報: kent
投稿者: KENT

> > デフォルトの容量サイズのことですね?
> > 現在は500KBにしてますね。
> >
> > # 1回当りの最大投稿サイズ (Bytes)
> > # [参考] 512000 = 500KB
> > # [注意] この値を大きくするとサーバに過負荷がかかります。
> > $cf{maxdata} = 512000;
> >
> > 次バージョンから、もう少し大きくするようにしましょう。
>
>
> 質問の意味を勘違いされてるようですね^^;
>
> CGI.pmとCGI::Minimalでは1回当たりの最大投稿量に差があると言うことなんですが。

そうでしたか。
その辺はあまり気にしていませんでしたが、試しに4MBのMP3をアップしてみましたが、正常にアップロードできました。
サーバ環境にもよるのかもしれませんね。

http://www.kent-web.com/test/upload/upload.cgi


記事No: 9596
投稿日: 2011/11/09(Wed) 22:54:39
タイトルRe^4: File Uploder v1.2 最大投稿サイズ
ID情報: teketen
投稿者: てけてん

CGI.pmの場合、一時ファイルを生成し、upload()でフィルハンドルを取得して、

open(UP,"+> $upfile") or &error("up err: $upfile");
binmode(UP);
while ( read($upf, $buf, 1024) ) {
print UP $buf;
}
close(UP);

のように、一定のバイト数ずつ書き込む処理をしていますよね?
これだと、メモリ使用量が少なくて済みますが、CGI::Minimalの場合は、一時ファイルを生成せず、添付ファイルのデータそのものをハッシュに格納しています。
その為、それだけサーバーのメモリ使用量も増えるので、サーバーの能力や制限などで、大きなファイルをアップロード出来ないのだと思います。
大容量のファイルをアップするなら、一時ファイルを生成するCGI.pmの方が良いと思います。
ただ、重いのが難点ですけれど(^^;

# 誤字修正 → フィルハンドルは、ファイルハンドルの打ち間違えですm(__)m


記事No: 9599
投稿日: 2011/11/10(Thu) 08:55:45
タイトルなるほど。
ID情報: kent
投稿者: KENT

> CGI.pmの場合、一時ファイルを生成し、upload()でフィルハンドルを取得して、
>
> open(UP,"+> $upfile") or &error("up err: $upfile");
> binmode(UP);
> while ( read($upf, $buf, 1024) ) {
> print UP $buf;
> }
> close(UP);
>
> のように、一定のバイト数ずつ書き込む処理をしていますよね?
> これだと、メモリ使用量が少なくて済みますが、CGI::Minimalの場合は、一時ファイルを生成せず、添付ファイルのデータそのものをハッシュに格納しています。
> その為、それだけサーバーのメモリ使用量も増えるので、サーバーの能力や制限などで、大きなファイルをアップロード出来ないのだと思います。
> 大容量のファイルをアップするなら、一時ファイルを生成するCGI.pmの方が良いと思います。
> ただ、重いのが難点ですけれど(^^;

なるほど。理解できました。
恐らく、てけてんさんのご推測どおりでしょうね。
一時、CGI.pmに切り替えたもの、かなり重いモジュールのため、CGI::Minimalモジュールへ転換をしたところでした。
Minimal以外のもの(Liteなど)もあるようなので、他の代替モジュールを調べてみることにします。
BALさん、てけてんさん、どうもありがとうございました。


[検索ページ]