从URL获取远程文件的大小?

时间:2011-05-11 02:52:31

标签: php

  

可能重复:
  PHP: Remote file size without downloading file

当用户输入他在其他网站上传的文件的链接时,我想从PHP中找到文件的大小。但是如何?

2 个答案:

答案 0 :(得分:16)

我假设你想要一个远程文件的大小。以下PHP代码应该可以解决这个问题:

<?php

    // URL to file (link)
    $file = 'http://example.com/file.zip';

    $ch = curl_init($file);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    $data = curl_exec($ch);
    curl_close($ch);

    if (preg_match('/Content-Length: (\d+)/', $data, $matches)) {

        // Contains file size in bytes
        $contentLength = (int)$matches[1];

    }
?>

您首先需要获取该文件的URL,该文件与MediaFire和其他文件共享网站相关,在满足免费用户等待期后需要额外的代码才能获得。

答案 1 :(得分:9)

strlen(file_get_contents($url_file));

strlen函数是二进制安全的,所以你只需要得到文件内容的长度。