![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
たとえば
あるファイルhttp://xxx.xxx.xxx/xxx/xxxx.xxxを
Perlで*.cgiのあるフォルダにそのファイルを
./yyyymmdd_hhmmss_xxx.xxx.xxx_xxx_xxxx.xxxとして
保存したいのですが
検索してもヘッダがついていたり、そのままな感じだったりして思うようなものは見つからず
Perlではファイル入出力を少しと$ENV{'~'}とか時刻とかしかつかったことがないので
ほとんどわかりません。
環境は
自宅では Windows95でAnHTTPD
サーバーは@PAGESのものです
よろしくお願いします
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
同じサーバー内で、ファイルの絶対パスをユーザーが指定するという前提で説明します。
複数の関数を使って可能です。
#!/usr/local/bin/perl
#ドメインの取得(http://xxx.xxx.xxx/)
$domain=$ENV{'HTTP_HOST'};
#ファイルアドレスを指定(ドメインの下xxx/xxxx.xxx)
$file='xxx/xxxx.xxx';
#ファイルアドレスを$file2に残す。
$file2=$file;
#/を_に変更
$file=~s/\//_/g;
#日付を指定した形にする
$zisa =0;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time + $zisa * 60 * 60);
$mon = ('1','2','3','4','5','6','7','8','9','10','11','12')[$mon];
$timestring = sprintf("%d%02d%02d_%02d%02d%02d_",1900+$year,$mon,$mday,$hour,$min,$sec);
#くっつける
$file=$timestring.$domain.$file;
print "Content-type: text/html\n\nhhhhhhhhhhhhhhh$file2/$file";
#さいごにファイル名を変更する
use File::Copy 'copy';
copy ($file2,$file );
exit;
この回答への補足
ありがとうございます。
実際は他サーバーのcgiの出力するバイナリとテキストも必要なんです。
むしろ、そっちのほうが主といってもいいくらいなんです。
説明不足ですみません。
No.2
- 回答日時:
前の返事の方法で行なうなら自分でヘッダ内容を解読しながら行なえば良いかと。
要するに上のモジュール使う方法の中身を自分で書く感じ。
その場合は、httpのプロトコルを参考にすれば良いでしょう。
http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616
上記ページ6章のレスポンス辺りで決められている値がヘッダの内容として送られてきているはずなので。
ソフトのバージョンは意識しないと欲しい情報が見つかりませんよ。
新しいバージョンに加わった機能をあるものと思って実装してできないと悩む事にもなりかねませんし。
質問にはperlなどと書かずにperl5.8.8とか書いた方が適合したお返事をもらえ易いですよ。
助言を読んで自身で置き換えれば良い話なのですけどね。
No.1
- 回答日時:
「ヘッダがついている」だけならヘッダを自分で取り除けばいいのでは?
あるいは, 「そのままな感じ」ならそのままでいいと思う.
この回答への補足
ご回答ありがとうございます
説明不足ですみません
そのままな感じというのは何らかのライブラリを使う方法で、
そのまま出力するという意味のつもりでした。
ヘッダを取り除く方法は
#HTTP応答を受信
while(chomp($buf=<SOCKET>)){
print "$buf\n";
}
という部分があります
xmlとかだけではなくバイナリの方も扱いたいと考えているのですが
それでもヘッダを取り除くことができるのであれば教えていただけるとありがたいです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux bash のファイルの読み込み方についてご質問 3 2023/05/15 20:40
- その他(パソコン・周辺機器) チャレンジタッチ3 改造 アプリインストールできない 1 2022/07/01 14:43
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- 確定申告 確定申告しなかった場合の期末商品棚卸高の扱い 2 2022/06/11 21:24
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
- ネットワーク コマンドプロンプトで、コマンドの飛ばし方を教えてください。 ネットワークにデータを飛ばす(copy) 4 2022/10/19 11:21
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- その他(メールソフト・メールサービス) ドメイン間違えでエラー送信メールが来ない 1 2022/05/10 18:44
- 数学 数独の次の一手 2 2022/08/31 17:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.open でのファイル指定方法
-
fgets で値が取得できない
-
MATLABのm-fileについて
-
WindowsでPerlをする際,1行目の...
-
ファイル全てを .xlsm に変更し...
-
ファイルの存在の有無を確かめ...
-
巨大なテキストの最終行を取得...
-
fortranのopen文について。
-
行を指定して削除する方法PERL
-
JSP URLに表示される拡張子 .jsp
-
PerlでHTTPを扱いたい
-
VBAでCSVファイルの特定行を書...
-
ReadLineでの読み出し行を指定する
-
awkスクリプトでダブルクォーテ...
-
VBAで巨大なファイルの途中から...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
htaccessで特定のディレクトリ...
-
fopenでディレクトリ内の全ファ...
-
ファイル出力の改行コードをLFに
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python renameについて
-
fgets で値が取得できない
-
window.open でのファイル指定方法
-
巨大なテキストの最終行を取得...
-
ファイル全てを .xlsm に変更し...
-
read() on unopened filehandle...
-
csvファイルの横方向への改行に...
-
VBAコードを張り付け後のエクセ...
-
Firefox で file:// で始まる U...
-
JSP URLに表示される拡張子 .jsp
-
drtファイルはどうしたら開...
-
並び方、
-
重複ファイル名ある場合ファイ...
-
VBA テキストファイルを読み取...
-
cgiでサーバーにファイルを追加...
-
HTMLのフォームで画像と文...
-
WindowsでPerlをする際,1行目の...
-
バイナリファイルの出力
-
Perlでのパーミッション変更の仕方
-
foreach内での変数の扱い?
おすすめ情報