電子書籍の厳選無料作品が豊富!

for($w=5;$w<$all_gyou;$w++){
$fnme = $folder_name."/".$fnme;
open OUT,">$fnme";
binmode OUT;
print OUT $in{'upfile'};
close OUT;
print "完了<BR>\n";
}#for

のようにして、アップロードを行いました。
回数分きちんと
「完了」
は表示されますが、アップロードは1回目のみしか行われません。
ということはforの文が間違ってるということでもなさそうなのですが…。

書き込みは特別1回しかできないものなのでしょうか?

A 回答 (2件)

まず、どのような名前・パスのファイルが生成されることを期待されているのでしょうか?



forループに入ったときの変数が、下記の様な状態だった場合、

$fname : "hoge.txt"
$folder_name : "abc"

↓こんな感じのファイルを書込むようなプログラムになっています。

カレントディレクトリ/abc/hoge.txt
カレントディレクトリ/abc/abc/hoge.txt
カレントディレクトリ/abc/abc/abc/hoge.txt
カレントディレクトリ/abc/abc/abc/abc/hoge.txt
カレントディレクトリ/abc/abc/abc/abc/abc/hoge.txt


ディレクトリが存在しない場合は書込めませんので、forループに入る前にこの様な階層のディレクトリがあらかじめ存在しなければなりません。

この回答への補足

無事解決しました。

ありがとうございました。

補足日時:2005/01/25 13:44
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

自分としては

1回目
$fname : "hoge.txt"
$folder_name : "1abc"
1回目
$fname : "hoge.txt"
$folder_name : "2abc"

カレントディレクトリ/1abc/hoge.txt
カレントディレクトリ/2abc/hoge.txt
というようなつもりで書いたのですが…。

ためしに

1abcの下に2abcを作成して、実行してみましたが、特に2abcの中にはファイルは作成されませんでした。
(1abcの中には作成されました。)

お礼日時:2005/01/25 09:29

ざっと見ただけですが、


ループのなかでファイル名が変ってないのでは?
つまり上書き。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ためしに
$fnme = "1" . $fnme . $file_time . $file_type;
$fnme = $folder_name."/".$fnme;
open OUT,">$fnme";
binmode OUT;
print OUT $in{'upfile'};
close OUT;
print "$folder_name 完了<BR>\n";
と書き出してみたところ、書きこみを行いたいフォルダ名がきちんと表示されてきました。
ということはちゃんと$folder_nameはかわっている、ということなのではないのでしょうか?

お礼日時:2005/01/25 09:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!