php - 为什么在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文件的长度?
解决方案
您必须在执行之前设置 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);
推荐阅读
- azure-storage - 如何为不存在的列编写 Azure 存储表查询
- android - Chrome 远程调试 - 如何检查混合应用程序中的元素(webview)
- javascript - 将文件上传到快递服务器时出现跨源错误
- python - 在有向图中查找所有节点前驱
- html - 强制具有不可编辑的样式/属性以适应包含宽度的任何方法?
- php - php中的foreach(菜单和子菜单)
- ios - 列表行中视图的对齐方式
- python - VScode 调试器无法从站点包导入模块
- linux-kernel - USB-OTG 可以用于 U-Boot 和 Linux 控制台吗?
- android - ViewModel 片段在屏幕旋转时重新创建