【问题标题】:Download remote PDF下载远程 PDF
【发布时间】:2016-09-09 17:46:29
【问题描述】:

我正在尝试为项目加载远程 PDF 并将其保存到我的服务器,但该链接没有文件扩展名。这是一种安全链接。

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

当我在浏览器中打开链接时,我可以下载 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/…??
  • 不,我确实看到了那个帖子。谢谢,我会研究一下。

标签: php pdf curl download


【解决方案1】:

要下载文件(二进制或非二进制),您可以使用file_get_contents()。 file_get_contents 将文件内容返回为字符串。

//Download PDF content
$pdfContent = file_get_contents("https://www.enablelogistics.com.au/BECPRD/SSOAuth.aspx?SESSION_KEY=XXXXXXX-DDDD-4444-AAAA-XXXXXXX&LINK_PAGE=ITINERARYENC&TRANS_ID=AAAAAAAA-3333-5555-6666-222222222");

$fileName = "myPDF.pdf";
$fp = fopen($fileName, 'w+');
//Write content into the file
fwrite($fp, $pdfContent);
fclose($fp);

如有必要,您可以使用 file_get_contents 中的选项来指定 GET 或 POST 方法、基本身份验证等。

【讨论】:

    【解决方案2】:

    感谢您的回复,但您的代码没有保存我正在寻找的 PDF。 它可以保护带有 HTML 内容的 PDF:

    WWW.ENABLELOGISTICS 启用物流 v95.4248
    欢迎启用
    物流 请输入您的用户名和密码登录。
    忘记密码?
    ©2016 Bright People Technologies Pty Ltd

    我不知道如何将 pdf 下载到我的服务器。 点击链接只让我下载本地。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      相关资源
      最近更新 更多