【问题标题】:CURL PHP Post request to download PDF fileCURL PHP Post 请求下载 PDF 文件
【发布时间】:2016-04-25 15:38:50
【问题描述】:

我有一个类似下面的表格。

我想使用 php 下载 pdf 文件,我对 CURL 有一些经验,但我无法让它工作。 CURL 请求应该是什么样子?一旦发出请求,我该如何下载文件?

<form action="https://ems.ms.gov.pl/krs/danepodmiotu.form" method="post" >
    <input value="H4sIAAAAAAAAAJVSv2sUQRj9shAIOfyBYBGiUeHOKsyJmEYb44XIwSHBQ6xEZnc/13Fn5xtnZm/2Umjj3yBIIH+BpIptmhTpbPwL/ANsLAIBC2c3iphDL5nue3xv3nsz7+M3mPWLsJAb213jCjcoLQS58m7yEpM8psoaWCGTMa55gJjjGq0z4xWWkEEpYhZzi2w1DiBP3LpAmbaH6ErdebLf+nr54EcEMwNoJaScIfmIF+jg0uAVH/Gu5CrrDp0RKrtXaQdzvzWnGVo9q6ENQwlaOyzjQlgrSO3vpHdeHG5/jgAq7a/C4j/lnt+yr+ENgIP5P9AURk2Y9Tfg2uTOpiSVkxeYGZGGKMtasoxGrLAMNWce46TQIUqhSaFylj0Me73SOirat0fvtzp5e7lz7PomtKfczwx5G0R6/32vE2KPA+f4B9fJhOHBuK9SrL48q95e2Lt4FL6zD3Ph4gatNIRzaiv1w8wHwsyZGZG/DksTDE2xQLPpx6kp8xD0/mmDNk1wk734MPy+8Gn3XS+CaBD6KEXY7qe1ibrEKLEIQF3iBqpLe+6Xh6eNh5OzX4IrE659UE1JCuvGTb7zDlo1tkaDGvt7+gmOLLt/oQMAAA==" name="t:formdata" type="hidden">
    <input type="hidden" name="t:submit" value="pobierzWydruk">
    <input value="DOWNLOAD" name="DOWNLOAD" type="submit">
</form>

这是我尝试过的,但 CURL 返回 false。

    $url = 'https://ems.ms.gov.pl/krs/danepodmiotu.form';
    $fields_string = '';
    $fields = array(
        't:submit' => 'pobierzWydruk',
        't:formdata' => 'H4sIAAAAAAAAAJVSv2sUQRj9shAIOfyBYBGiUeHOKsyJmEYb44XIwSHBQ6xEZnc/13Fn5xtnZm/2Umjj3yBIIH+BpIptmhTpbPwL/ANsLAIBC2c3iphDL5nue3xv3nsz7+M3mPWLsJAb213jCjcoLQS58m7yEpM8psoaWCGTMa55gJjjGq0z4xWWkEEpYhZzi2w1DiBP3LpAmbaH6ErdebLf+nr54EcEMwNoJaScIfmIF+jg0uAVH/Gu5CrrDp0RKrtXaQdzvzWnGVo9q6ENQwlaOyzjQlgrSO3vpHdeHG5/jgAq7a/C4j/lnt+yr+ENgIP5P9AURk2Y9Tfg2uTOpiSVkxeYGZGGKMtasoxGrLAMNWce46TQIUqhSaFylj0Me73SOirat0fvtzp5e7lz7PomtKfczwx5G0R6/32vE2KPA+f4B9fJhOHBuK9SrL48q95e2Lt4FL6zD3Ph4gatNIRzaiv1w8wHwsyZGZG/DksTDE2xQLPpx6kp8xD0/mmDNk1wk734MPy+8Gn3XS+CaBD6KEXY7qe1ibrEKLEIQF3iBqpLe+6Xh6eNh5OzX4IrE659UE1JCuvGTb7zDlo1tkaDGvt7+gmOLLt/oQMAAA==');
    foreach ($fields as $key => $value) {
        $fields_string .= $key . '=' . $value . '&';
    }
    $fields_string = rtrim($fields_string, '&');
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, count($fields));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
    $result = curl_exec($ch);
    curl_close($ch);

【问题讨论】:

  • 当我提交您提供的表单代码时,我并没有开始下载,而是获得了一个网页。这是预期的行为吗?是否应该开始下载 PDF 文件?
  • 不,不应该。我正在寻找一种下载方式

标签: php pdf curl web-scraping screen-scraping


【解决方案1】:

以下是一些基本步骤,可帮助您(大部分)使用 cURL 重新构建任何请求。

  1. 在浏览器的 Web 检查器中打开网络选项卡。

  2. 执行相关请求。根据您的情况,做任何需要触发 PDF 下载的事情。

  3. 在网络选项卡中右键单击触发下载的请求,然后选择copy as cURL

  4. 将其粘贴到文本编辑器中,然后开始使用 PHP 的 cURL 绑定重新构建请求。

粘贴的文本将是curl 命令的命令行版本。您可以找出每个命令选项的含义here

【讨论】:

    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多