解決済み

copy関数について

  • すぐに回答を!
  • 質問No.262789
  • 閲覧数57
  • ありがとう数5
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 82% (58/70)

やまとです。
質問です。

開発環境はOS:Linuxで、PHPはバージョン3です。

copy関数を使っているのですが、IEでは正常に動作するのですが、
NNではエラーが出てしまいます。(NNのバージョンは6.2です)
ロジックは以下の通りです。

if ( !copy( $file1 , $file2 ) ){
echo "失敗";
}else {
echo "成功";
}

NNではcopy関数は使えないのでしょうか?
それとも、書き方が間違えているのでしょうか?
教えてください。
宜しくお願いします。

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

  • 回答No.1

ベストアンサー率 34% (20/58)

もちろんその5行を削除すればNNでもエラーにならない、
ということですよね。

でも、copyが実行されるのはサーバー側での話なので、
NNから送信された場合に、$file1や$file2に期待した
文字列が入っているかどうか確認してみるとどうでしょうか。
補足コメント
jyamato

お礼率 82% (58/70)

やまとです。
yurarincoさん、ご解答ありがとうございます。

文字列の内容をチェックして分かりました。

やりたかった事はファイルアップロードだったのですが、
<input type='file'・・・>を使ってコピー元のファイルを取得し、
LINUXのTMPフォルダに一時格納。そのTMPフォルダからある固定のパスに
copyする処理でした。

参照ボタン(<input type='file' name='file1'・・・>)でファイル名取得時に、
NNとIEではファイル名の引数が違うのですね。

例えば、C:\aaa.txt というファイルを参照でアップロ-ドすると、
NNでは、$file1 = aaa.txt
IEでは、$file1 = C:\aaa.txt
と言うように。

一応NNとIEでcopyの処理を変えるようにして、解決しましたが、
他に何か良い方法がありましたら参考までに教えて頂ければうれしいです。

宜しくお願いします。
投稿日時 - 2002-05-01 18:59:34
Be MORE 7・12 OK-チップでイイコトはじまる

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 34% (20/58)

phpはあまり自信が無いのですが、フォームに
<input type='file' name='file1'・・・>
と書いてあった場合、phpの中では
TMPフォルダ内のファイル名は、たとえば
NNでは、$file1 = /tmp/php28495aaa
IEでは、$file1 = /tmp/php28503aaa
みたいな感じになっていて、$file1_nameの方は
NNでは、$file1_name = aaa.txt
IEでは、$file1_name = C:\aaa.txtとなっていないでしょうか。

で、この$file1_nameではなくて$file1の方を使ってcopy
していたらNNでもIEでも関係なさそうな気がします。

で、もしかしたらどこかで$file1=$file1_nameとして
しまっているので、$file=C:\aaa.txtとかになってし
まっているのではないのかなぁと思います。
でもそれだとサーバー側でC:\aaa.txtというファイルは
無いのでうまくいかないのではないかと思います。

でもやまとさんが解決しているならそれでOKと
思います。(^^;
お礼コメント
jyamato

お礼率 82% (58/70)

やまとです。

>NNでは、$file1_name = aaa.txt
>IEでは、$file1_name = C:\aaa.txtとなっていないでしょうか。
その通りです。(^^;)

C:\aaa.txt をIEでアップロードした場合、サーバには
/tmp/php28503aaa/C:\aaa.txtみたいに訳の分からないファイルができてしまうみたいですね。(^^;)
copy時にstrpos(),substr(),strrchr() を使ってファイル名だけを取得する処理が必要ではと思いました。
実際、その関数達を使ってファイル名だけ取得し、IEでもNNでもアップロードできるようになったのですが。。。

yurarincoさん。ありがとうございました。
変数の中身を確認してみては??と言うご指摘が無ければまだ悩んでいたでしょう。
助かりました。m(__)m
投稿日時 - 2002-05-01 22:16:43
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
このQ&Aのテーマ

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

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

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ