• 締切済み

ネットワークの指定は?

サーバとクライアントと言う関係で、phpでcopy関数を 使おうとしています。 ファイル指定で、サーバのIPとクライアントのIPを 指定したいのですが、上手くいきません。 どなたかのアドバイスが頂ければと思います。 ちなみに、したいことの記述としては、 copy("\\192.168.0.1\tmp\aa.txt", "\\192.168.0.2\tmp\bb.txt");  サーバのaa.txt をクライアントにbb.txtとしてコピー。 環境  サーバ:Windows2K     :WindowsApache     :WindowsPHP  クライアント:Windows2K

みんなの回答

noname#202916
noname#202916
回答No.3

権限でアクセスできないとのことですが、 ちょっとやったことがないので詳しくはわかりませんが apacheにてphpを実行する権限(匿名アカウント?)と 同じアカウントを、コピー先のコンピュータと同じに すればうまくいくと思います。phpではありませんが 昔aspで似たようなことをしました。IISではIUSER_コンピュータ名 という匿名アカウントで実行されるため、コピー先にも 同じアカウントを作った記憶があります。WinApache? これに関しても何か匿名で実行をかけるアカウントがあるはずです。同じIUSR_XXXXかな?

  • togino
  • ベストアンサー率75% (97/129)
回答No.2

# No.1 で間抜けな回答をした togino です。 すみません・・・ copy("\\\\192.168.0.1\\tmp\\aa.txt", "\\\\192.168.0.2\\tmp\\bb.txt"); として、動きませんか? いま PHP for Win32 で試したところ、ファイルを コピーしてくれました。 認証がいる場合どうなるのか分かりませんが・・・ あと $obj_file = new COM("Scripting.FileSystemObject"); $obj_file->CopyFile("\\\\192.168.0.1\\tmp\\aa.txt", "\\\\192.168.0.2\\tmp\\bb.txt"); $obj_file->Release(); $obj_file = null; こんなんとか w32api_register_function("kernel32.dll", "CopyFile", "long"); CopyFile("\\\\192.168.0.1\\tmp\\aa.txt", "\\\\192.168.0.2\\tmp\\bb.txt", 0); こんなのとかまで(↑PHP 4.2.x only らしい) とかやってみました(苦笑)

Neko-chan
質問者

お礼

ありがとうございます。 '\\\\'でしたか・・・ ご指摘どおり、次は権限で引っかかりました(汗)。 何かそのあたりでお解りの場合、ご教授頂けたらと思います。 宜しくお願いします。

  • togino
  • ベストアンサー率75% (97/129)
回答No.1

PHP はクライアント側のローカルリソースには セキュリティーの問題で全くアクセスできない ようになっています。 # そもそもクライアントは UNIX かもしれないし # サーバが関与する所ではないですよね PHP側のサーバが「君のパソコンの C:\Windows\ に このファイルを保存しました」なんてされたら 怖いですよね。

関連するQ&A