0
  1. 我有一个来自另一台启用了 http auth 的服务器的 url。
  2. 这个特定的 url 强制文件下载文件。
  3. 我在这里尝试获取标头并将标头设置回来,以便在 curl 中完成 http auth 后,我可以强制从我的 php 文件下载,但没有成功。curl 没有给出任何错误。$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

上面的代码工作正常。问题只是在 $_GET["url"] 中的 & ,它拆分了有效的 url。刚刚使用urlencode和代码现在工作正常。希望这会对某人有所帮助。

于 2012-05-30T12:16:12.873 回答