2017-10-26 43 views
0

PHPを使用してWebDAVサイトからファイルをダウンロードする必要があります。私はcURLを使用して以下のコードを試しましたが、 "400 Bad Request"エラーが発生します。PHPを使用したWebDAVサイトからのファイルのダウンロードCurl

私が間違っていることを助けてくれる人がいますか?私は最終的にそれが働いてしまった

$fp = fopen("c:/downloadtest.text", "w"); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$URL); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 

$result = curl_exec ($ch); 

curl_close ($ch); 

fclose($fp); 
+0

パスは$のURL変数であり、私はちょうどすることができます; tは本当に上で共有しますウェブ。私は最終的に結果を保存するためにfopenを使用していました。 – user3101337

+0

それはあなたがファイルに書き込む方法ではありません。 https://stackoverflow.com/questions/7967531/php-curl-writing-to-file - curlからの応答を取得し、 'fwrite'を使用して実際にそれを書き込む必要があります(また、' CURLOPT_WRITEFUNCTION'を使用して応答を生成する必要があります)。より効率的なメモリ)。 –

+0

私はあなたが提供したリンクに一致するように以下のコードを調整しました。空のファイルがあります。新しいコードを投稿する方法がわかりません。元の投稿を編集しますか? – user3101337

答えて

0

は、私がCURLOPT_WRITEFUNCTIONオプションを動作させる方法がわからなかった。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 

$output = curl_exec($ch); 

$fp = fopen("c:/downloadtest.text", "w"); 
fwrite($fp, $output); 
fclose($fp); 

curl_close($ch); 
関連する問題