0
  1. http認証が有効になっている別のサーバーからのURLがあります。
  2. この特定のURLは、ファイルにファイルのダウンロードを強制します。
  3. ここでヘッダーを取得してヘッダーを元に戻そうとしているので、curlでhttp authが実行された後、phpファイルから強制的にダウンロードできますが、成功しません。カールはエラーを出しませんでした。$bodyには何も返されません。

    $url=$_GET["url"];//another web server url which forcing file download save as
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_USERPWD, "username:password");//http auth done here
    curl_setopt($ch, CURLOPT_HEADER, TRUE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, null); 
    curl_setopt($ch, CURLOPT_URL, $url);
    $response = curl_exec($ch);
    list ($headerString, $body) = explode("\r\n\r\n", $response, 2);
    $headers = explode("\r\n", $headerString);
    foreach ($headers as $header) {
        header($header);
    }
    echo $body;
    exit; 
    
4

1 に答える 1

0

上記のコードは正常に機能しています。問題は、有効なURLを分割する$_GET["url"]にあります。urlencodeを使用しただけで、コードは正常に機能しています。これが誰かを助けることを願っています。

于 2012-05-30T12:16:12.873 に答える