- 締切済み
画像ファイルの別名保存(CGI)
サーバーに既にある画像ファイル(test.gif)を別名に変えて保存するCGIを作ろうとしています(ただのリネームではなく、結果的に元の画像ファイルと名前を変更した画像ファイルの2つがサーバーに残るようにしたいです)。 ファイルハンドルによる関連付けで、test.gifを一度@aaa配列として読み込み、その@aaa配列を使って「bbb.gif」に書き出すという文を書いて見ましたが、生成されるファイルは画像ファイルとして表示してくれずにエラーとなってしまいます。 どなたか解決方法がわかる方アドバイスをお願いしますm(_ _)m 以下ソースです。 --------- open (IN,"test.gif"); @aaa = <IN>; close (IN); open (OUT,"> bbb.gif"); print OUT @aaa; close (OUT); ------ ↑はgifファイルではなくtxtファイルだと上手く行きます。 参考にしたサイトは↓です。 http://www.aimix.jp/cgi/syohofileread.html http://www.aimix.jp/cgi/syohofilewrite.html よろしくお願いしますm(_ _)m
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
画像ファイルなので、 @aaa = <IN>; というような読み方がうまくないですね。 binmode を設定するとか $/ を"" とかundef して@aaaじゃなくて、$aaaで全部読むとか read を使うとか 色々あると思いますが 標準モジュール File::Copy が使えれば use File::Copy; copy("test.gif","bbb.gif") or die "Copy failed: $!"; でいいんじゃないかと思います。
お礼
ご指導していただいた use File::Copy; copy("test.gif","bbb.gif") or die "Copy failed: $!"; の方法で無事に走りました! ありがとうございました!! また何かあればよろしくお願いします!!