• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名でなく、ファイルの中身を保存したい)

ファイルの中身を保存する方法について

このQ&Aのポイント
  • ファイルの中身を保存する方法について教えてください
  • テキストと画像を回答するHTMLで書かれたアンケートがあります。回答はPOSTメソッド、multipart/form-dataモードで送信されます。
  • perlで作成したCGIでテキストは正しく受信できましたが、画像がファイルの中身ではなくファイル名になってしまいます。画像ファイルを受信する方法をお教えください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

CGI.pmのマニュアルに書いてあると思います。 http://search.cpan.org/dist/CGI/lib/CGI.pm#Processing_a_file_upload_field 和訳: http://perldoc.jp/docs/modules/CGI-3.49/CGI.pod#PROCESSING32A32FILE32UPLOAD32FIELD CGI.pmはアップロードされたファイルを一時的にファイルに保存し、$q->uploadでそのファイルのハンドルを取れるようにするようです。

iruiru298
質問者

お礼

回答ありがとうございます。 my $fig = $q->param('ansfig'); では、ファイルの中身ではなくファイル名が取得されるのですね。 >$q->uploadでそのファイルのハンドルを取れるようにするようです。 ファイルの中身を取得するには、ファイルアップロード用の IO::Handle 互換のハンドルを $lightweight_fh = $q->upload('ansfig'); my $io_handle = $lightweight_fh->handle; で取得して、  $bytesread = $io_handle->read($buffer,1024) で1024バイト単位にファイルの中身を取得する ということですね。

関連するQ&A

専門家に質問してみよう