Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get size of remote file from URL? [duplicate]

Tags:

php

Possible Duplicate:
PHP: Remote file size without downloading file

I want to find the size of a file from PHP when the user enters the link of the file which he uploaded on a different site. But how?

like image 584
Buffon Avatar asked May 11 '11 02:05

Buffon


2 Answers

I assume you want the size of a remote file. The following PHP code should do the trick:

<?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];

    }
?>

You first need to obtain the URL to the file which, in relation to MediaFire and other file sharing websites, would need extra code to obtain after satisfying the free user waiting period.

like image 64
Steven Ross Avatar answered Oct 16 '22 23:10

Steven Ross


strlen(file_get_contents($url_file));

The strlen function is binary safe, so you just have to get the length of the file's contents.

like image 42
Jim Rubenstein Avatar answered Oct 17 '22 01:10

Jim Rubenstein