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


記事No: 10445
投稿日: 2012/04/25(Wed) 10:25:45
タイトルQuick DB Ver: 1.0 CSVデータ管理のエラー
ID情報: Fuyuki
投稿者: BAL
URLhttp://www26.tok2.com/home/sumire1100/

CSVデータ管理を選択すると以下のエラーが出ます。

Can't call method "0" without a package or object reference at admin.cgi line 387


余談ですがモジュールをCGI-Simpleに変更したことによって50MBのファイルがアップできることを確認しました。
しかし70MBのファイルはアップロードに失敗します。
CGI.pmを使ってもファイルを分割してアップロードする方法では同様に失敗するようです。
CGI.pmの場合COPY関数のmoveメソッドを使って一気にアップロードすれば100MB以上のファイルもOKでした。
これはサーバー環境にも左右されると思いますが、デジカメで撮影した動画をアップロードする時に使えそうです。


記事No: 10448
投稿日: 2012/04/25(Wed) 14:05:43
タイトル了解>BALさん
ID情報: kent
投稿者: KENT

> CSVデータ管理を選択すると以下のエラーが出ます。
>
> Can't call method "0" without a package or object reference at admin.cgi line 387
>
>
> 余談ですがモジュールをCGI-Simpleに変更したことによって50MBのファイルがアップできることを確認しました。
> しかし70MBのファイルはアップロードに失敗します。
> CGI.pmを使ってもファイルを分割してアップロードする方法では同様に失敗するようです。
> CGI.pmの場合COPY関数のmoveメソッドを使って一気にアップロードすれば100MB以上のファイルもOKでした。
> これはサーバー環境にも左右されると思いますが、デジカメで撮影した動画をアップロードする時に使えそうです。

ご指摘ありがとうございます。
修正アップしておきました。

CGI::Simpleモジュールによる大量データのアップロードですが、

print UP $buf while read( $fh, $buf, 4096 );

の「4096」の値を変えてもダメですか?


記事No: 10449
投稿日: 2012/04/25(Wed) 16:37:07
タイトルRe: 了解>BALさん
ID情報: Fuyuki
投稿者: BAL
URLhttp://www26.tok2.com/home/sumire1100/

> CGI::Simpleモジュールによる大量データのアップロードですが、
>
> print UP $buf while read( $fh, $buf, 4096 );
>
> の「4096」の値を変えてもダメですか?

とりあえず3倍の12288で試したら100MBもOKでした。
この値を色々変えて最適値を探せばいいのでしょうが何分100MB以上のファイルとなるとアップロードに時間が掛かるものですから^^;


記事No: 10450
投稿日: 2012/04/25(Wed) 17:16:11
タイトルRe^2: 了解>BALさん
ID情報: kent
投稿者: KENT

> > CGI::Simpleモジュールによる大量データのアップロードですが、
> >
> > print UP $buf while read( $fh, $buf, 4096 );
> >
> > の「4096」の値を変えてもダメですか?
>
> とりあえず3倍の12288で試したら100MBもOKでした。
> この値を色々変えて最適値を探せばいいのでしょうが何分100MB以上のファイルとなるとアップロードに時間が掛かるものですから^^;

なるほど。
以下の記事などの方法がよさそうですね。

http://blog.dtpwiki.jp/dtp/2007/10/cgipm_e5c6.html


記事No: 10451
投稿日: 2012/04/25(Wed) 17:50:43
タイトルRe^3: 了解>BALさん
ID情報: Fuyuki
投稿者: BAL
URLhttp://www26.tok2.com/home/sumire1100/

> なるほど。
> 以下の記事などの方法がよさそうですね。
>
> http://blog.dtpwiki.jp/dtp/2007/10/cgipm_e5c6.html

私が参考にしたのは正にこの記事です。

1GBのファイルならこの方式でなければおそらく無理かと思われます。
100MB程度のファイルならCGI::Simpleモジュールで十分かと。


【追記】4月27日

print UP $buf while read( $fh, $buf, 30720 );

30KB毎にファイル分割を行うと160MBでもアップロード成功しました。


[検索ページ] [掲示板]