OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

画像ファイルを読み込んでコピーする方法

  • 困ってます
  • 質問No.129737
  • 閲覧数147
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 35% (16/45)

画像ファイル(gif,jpg)などを読み込んで、読み込んだファイルを指定のフォルダにほり込みたいのですが、方法が思いつきません。ライブラリを使えば簡単にできるのですが、原理というか一連の流れを知りたいので、良い方法を知ってるかた、誰かおしえてくれませんか?

標準入力をつかってバイナリーで読み込めばいいというのはチラッときいたのですが、イマイチわからなくて・・・。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル11

ベストアンサー率 47% (160/334)

 #2のサンプルコードに補足&訂正です。

open(INFILE, "画像ファイル名"); #画像ファイルを開く
binmode(INFILE); #バイナリモード指定
$len = (-s "画像ファイル名"); #画像ファイルのサイズ
read(INFILE, $buf, $len); #画像ファイルを$bufに読み込み
...
open(OUTFILE, "> フォルダー名/画像ファイル名"); #出力先ファイルを開く
binmode(OUTFILE); #バイナリモード指定
print OUTFILE $buf; #画像ファイルの出力

 こんな感じでうまくいくはずです。
お礼コメント
hidebu-

お礼率 35% (16/45)

どうもありがとうございます。質問してから、自分でも調べてみたのですが、回答の内容とほぼ同じような結論にいたりました。
フォームデコーダはcgi-libを使うしかないようですね。。。こればっかりは仕方がありませんね。
投稿日時 - 2001-09-06 13:19:24
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 47% (160/334)

 単にファイルを所定のフォルダに入れたいだけなら,Unix系のOS上であれば, system("cp 画像ファイル名 行先フォルダ名"); で充分なのでは? Windows上で動くPerlについても,よく知らないので確かなことは言えませんが,""の中身をOSに合わせて変えてやれば同様のことはできるのではないかと思います。 #もちろん,画像ファイルや ...続きを読む
 単にファイルを所定のフォルダに入れたいだけなら,Unix系のOS上であれば,

system("cp 画像ファイル名 行先フォルダ名");

で充分なのでは? Windows上で動くPerlについても,よく知らないので確かなことは言えませんが,""の中身をOSに合わせて変えてやれば同様のことはできるのではないかと思います。

#もちろん,画像ファイルや行き先フォルダのアクセス権を
#Perlスクリプトが持っていることが前提です。

 そうではなくて,画像ファイルを読み込みたい理由が何かあるのでしょうか?
補足コメント
hidebu-

お礼率 35% (16/45)

回答してくださって、ありがとうございます。スキャナ等で取り込んだ画像に名前をつけて、クライアント側から画像の種類ごと、サーバーの中の別々のフォルダにほりこむという作業なのですが、、、エンドユーザーがPCの知識がほとんどないということを前提にプログラムを作成しないといけないのです。ですからGUIからマウスだけで、指示どおりにクリックすると放りこめる必要があるのです。システム自体はライブラリを使用して完成しているのですが、原理をしらないと追加機能を作成するときに困ると思ったので質問したのです。
ちなみにサーバーはNTサーバーらしいのでパーミッション設定はいりません。
投稿日時 - 2001-09-05 13:02:38
  • 回答No.2
レベル11

ベストアンサー率 47% (160/334)

 再びatonです。  なるほど,システムはもうできているけど,原理を知りたいということですね。  実際にどんなライブラリーを使っているのかが分からないとせいかくなことは言えませんが,画像ファイルを読み込んで,またそれを出力するだけなら, open(INFILE, "画像ファイル名"); #画像ファイルを開く binmode(INFILE); #バイナリモード指定 ...続きを読む
 再びatonです。

 なるほど,システムはもうできているけど,原理を知りたいということですね。

 実際にどんなライブラリーを使っているのかが分からないとせいかくなことは言えませんが,画像ファイルを読み込んで,またそれを出力するだけなら,

open(INFILE, "画像ファイル名"); #画像ファイルを開く
binmode(INFILE); #バイナリモード指定
$len = (-s "画像ファイル名"); #画像ファイルのサイズ
read(INFILE, $buf, $len); #画像ファイルを$bufに読み込み
...
open(OUTFILE, "ディレクトリー名/画像ファイル名"); #出力先ファイルを開く
print OUTFILE $len; #画像ファイルの出力

てなかんじになるのではないでしょうか。

#最後の行,printでバイナリデータがちゃんと出力できるかどうかがちょっと自信ありませんが。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ