我感觉我的问题是我对一些 HTTP 细微差别的基本理解存在问题,但我会在这里作为 curl 和 php 问题提出。
我使用可用于存储文件的 Web 应用程序,如果我使用浏览器访问站点上的特定 URI,浏览器会提示我将该文件存储在某处。请注意,URI 是(以某种方式)发回文件的 asp 代码,而不是 Web 服务器上的简单文件路径。此外,似乎发生了许多重定向,但我不确定这是否相关,因为我设置了 FOLLOWLOCATION 选项。
我正在尝试使用 php 和 curl 做同样的事情。我的 PHP 代码如下所示:
$curlObj = curl_init($url);
curl_setopt($curlObj, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, FALSE);
$tempFile = tempnam("","aes"); # create a temp file
$tempFH = fopen($tempFile,"w");
curl_setopt($curlObj, CURLOPT_FILE, $tempFH);
curl_setopt($curlObj, CURLINFO_HEADER_OUT, TRUE);
curl_exec($curlObj);
print_r(curl_getinfo($curlObj));
curl_close($curlObj);
当我查看临时文件的内容时,它始终等同于当我访问该站点时在我的浏览器中可见的 html 数据,而不是浏览器允许我保存的文件。如果我查看 htt 标头数据和正文,则没有对文件或其内容的引用,因此我不确定如何像浏览器那样访问它。