- 締切済み
ネットワークの指定は?
サーバとクライアントと言う関係で、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
- みんなの回答 (3)
- 専門家の回答
みんなの回答
権限でアクセスできないとのことですが、 ちょっとやったことがないので詳しくはわかりませんが apacheにてphpを実行する権限(匿名アカウント?)と 同じアカウントを、コピー先のコンピュータと同じに すればうまくいくと思います。phpではありませんが 昔aspで似たようなことをしました。IISではIUSER_コンピュータ名 という匿名アカウントで実行されるため、コピー先にも 同じアカウントを作った記憶があります。WinApache? これに関しても何か匿名で実行をかけるアカウントがあるはずです。同じIUSR_XXXXかな?
- togino
- ベストアンサー率75% (97/129)
# 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 らしい) とかやってみました(苦笑)
- togino
- ベストアンサー率75% (97/129)
PHP はクライアント側のローカルリソースには セキュリティーの問題で全くアクセスできない ようになっています。 # そもそもクライアントは UNIX かもしれないし # サーバが関与する所ではないですよね PHP側のサーバが「君のパソコンの C:\Windows\ に このファイルを保存しました」なんてされたら 怖いですよね。
お礼
ありがとうございます。 '\\\\'でしたか・・・ ご指摘どおり、次は権限で引っかかりました(汗)。 何かそのあたりでお解りの場合、ご教授頂けたらと思います。 宜しくお願いします。