[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 メーリングリストの案内