[PHP-users 15798]Re: curlによりHTTP PUT
kenbooit @ excite.co.jp
kenbooit @ excite.co.jp
2003年 6月 10日 (火) 21:14:44 JST
桝形さん、本当にありがとうございます。
お蔭様でアクセスログの確認のところまでできました。
ところで
telnet localhost 80
PUT /test.html HTTP/1.0
Content-length: 24
<HTML>
<BODY>
test
</BODY>
</HTML>
なんてやると
DocumentRootのすぐ下にtest.htmlができるわけですが、
今必死に作っているcURLのスクリプトも
これと同じノリのものだと思っていたのですが、
これは勘違いでしょうか。
具体的に申し上げますと、
$ch = curl_init( "http://www.example.com/up/" ); //1行目
$fp = fopen( "homepage.txt", "r" ); //2行目
1行目はアップロード先のディレクトリで、
2行目はアップロードしたいファイルをこのスクリプトから見た
相対パスで指定、
ということでよろしいのでしょうか。
アクセスログにはPUTのログは確かにあるのですが、
肝心のファイルがないので、
恐らく私は根本的な勘違いをしているのであろうと思います。
色々とお手数をおかけして申し訳ございませんが、
よろしくお願い致します。
-----------------------------------------------------------
よくよく見てみると、指定された引数がFile-Handleリソースじゃ
ないぞ!っていっているではないですか。
ここは、ファイルポインタを指定する必要があるようです。
<?
$ch = curl_init( "http://www.example.com/" );
$fp = fopen( "homepage.txt", "r" );
curl_setopt( $ch, CURLOPT_VERBOSE, 1 );
curl_setopt( $ch, CURLOPT_FAILONERROR, 1 );
curl_setopt( $ch, CURLOPT_PUT, 1 );
curl_setopt( $ch, CURLOPT_INFILE, $fp );
curl_setopt( $ch, CURLOPT_INFILESIZE, filesize(
"homepage.txt" ) );
curl_exec( $ch );
curl_close( $ch );
fclose( $fp );
?>
で、送信した先のApacheのアクセスログに、
XX.XX.XX.XX - - [10/Jun/2003:20:19:25 +0900] "PUT /
HTTP/1.1" 200 42365
と、いうメッセージが記録されました。
混乱させて、すみません。(^^;
--
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>
PHP-users メーリングリストの案内