PHP Get File Size of Remote File
November 6, 2009 # 10:55 AM # Code, PHP Functions, Tutorials # 33 CommentsPreviously in a post I made for uploading file with URL we wanted to include a file size check to make sure the file wasn’t too big before we upload it. Here I’ll show you how to get the remote file’s size and other information before doing other functions with it.
<form action="get_info.php" method="post"> <input type="text" name="url" size="40" value="Enter URL Here..." onfocus="if(this.value == 'Enter URL Here...') this.value = '';" /> <input type="submit" name="submit" value="Submit" /> </form>
This HTML form will submit the entered url to get_info.php.
We are going to the function fopen() to get the information we need from the remote file. There is one thing to be aware of using fopen() to retrieve this data. You need to be sure the fopen wrappers is enabled in your php.ini. This can not be changed using ini_set().
We are going to create a variable “contents” and add each line of the file to it as we read it. Then we will use the function mb_strlen() to get the file size of the variable. Normally we would use strlen(), however that will only read one character as one byte. That doesn’t really give you the most accurate reading if you have special characters in the file which are more than one byte.
get_info.php
<?php
// get_info.php
if($_POST["submit"]){
// Form is submitted.
// Check the fopen wrapper settings in php.ini
if (ini_get("allow_url_fopen") == 1) {
// Open the file.
$file = fopen(trim($_POST["url"]), "r");
if($file){
// We got the file.
$contents = "";
while($line = fgets($file,1024)){
// Write each line to the string contents a kilobyte at a time.
$contents .= $line;
}
$filesize = mb_strlen($contents,"8bit");
$kb = $filesize / 1024; // Returns the file size in kilobytes
echo "<strong>File Size</strong>: ".$filesize." bytes or ".$kb." kilobytes.";
} else {
echo "Remote file not found.";
}
} else {
echo "Fopen wrappers not enabled.";
}
}
?>
The page will display the file size in bytes and kilobytes, as so:
[b]File Size:[/b] 1024 bytes or 1 kilobytes.
Popularity: 19% [?]

Subscribe RSS
Comment RSS







What a good blog you have here. Please update it more often. This topics is my interest. Thank you. . .
Thank you for the advice. I’ve found your first point to be most effective.
Nice post and this mail helped me alot in my college assignement. Gratefulness you on your information.
Useful information, many thanks to the writer. It is puzzling to me now, but in general, the usefulness and importance is overwhelming. Very much thanks again and good luck!
I absolutely enjoy reading your article, the form of writing is great.This blog as usual was instructive, I have had to bookmark your website and subscribe to your feed in ifeed. Your blog looks smashing.
Cheers for this post, it was great to read.
Excelentes Tips! a ponerlos en practica! Gracias!
well I guess you learn something new everyday. Got something outta this that I realize before. Thanks…
Excelentes Tips! a ponerlos en practica! Gracias!
Interesting, many thanks
Great, many thanks
Maintain up the outstanding work mate. This weblog publish shows how well you comprehend and know this subject.
This is really a marvelous source of data, Im pleased I read this article. I am going to be returning soon to look at more that you have.