首页 > 解决方案 > 为什么在php_curl中无法获取带有`CURLINFO_CONTENT_LENGTH_DOWNLOAD`的pdf文件的长度?

问题描述

我必须通过在 PHP 中使用 curl 来获取远程文件的文件大小该文件托管在 Dropbox 上,将通过直接链接下载下面是我编写的代码

$szUrl='https://www.dl.dropboxusercontent.com/s/8ol4o753smure2o/Holy_Quran_in_Turkish.pdf';
    $curl = curl_init();
    curl_exec($curl);


    curl_setopt($curl, CURLOPT_URL, $szUrl);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_NOBODY, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);


   $size = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
  echo $size;

curl_close($curl);

代码的输出为-1,如何使用php_curl正确获取iso文件的长度?

标签: phppdfcurldropbox

解决方案


您必须在执行之前设置 curl 选项:

<?php

   $szUrl='https://www.dl.dropboxusercontent.com/s/8ol4o753smure2o/Holy_Quran_in_Turkish.pdf';
   $curl = curl_init();
   curl_setopt($curl, CURLOPT_URL, $szUrl);
   curl_setopt($curl, CURLOPT_HEADER, 1);
   curl_setopt($curl, CURLOPT_NOBODY, 1);
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
   curl_exec($curl);
   $size = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
   echo $size;
   curl_close($curl);

推荐阅读