【发布时间】:2016-09-09 17:46:29
【问题描述】:
我正在尝试为项目加载远程 PDF 并将其保存到我的服务器,但该链接没有文件扩展名。这是一种安全链接。
当我在浏览器中打开链接时,我可以下载 PDF 文件,但用我的脚本保存它没有成功。
有没有办法使用脚本将 PDF 保存在我的服务器上? 我尝试了以下代码但没有成功:
$url ="https://www.enablelogistics.com.au/BECPRD/SSOAuth.aspx?SESSION_KEY=F86A56B3-D12C-4E70-AE71-A8A422B3EA4E&LINK_PAGE=ITINERARYENC&TRANS_ID=A25D191B-B098-4F45-9217-FB6D2B70F803";
getFileContents($url);
function getFileContents($url)
{
// Workaround: Save temp file
$img = tempnam(sys_get_temp_dir(), 'pdf-');
$img .= '.' . pathinfo($url, PATHINFO_EXTENSION);
$fp = fopen($img, 'w+');
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
curl_close($ch);
fclose($fp);
return $result ? $img : false;
}
我在这里找到了脚本:Downloading a large file using curl
【问题讨论】:
-
好吧,对于初学者来说,您可能不想将 session_key 包含在您在线发布的任何内容中。另外,您是否检查过相关线程,例如stackoverflow.com/questions/15076323/…??
-
不,我确实看到了那个帖子。谢谢,我会研究一下。