Helping ordinary people create extraordinary websites!

How To Upload Files Using PHP

By Ben Sinclair
2005-04-11

Going Advanced...
But what if you want to go a little more advanced... Like choosing what file extensions that are allowed or the maximum height width of an image and even size?

To do this, first you will need to add a few things to your confuration:

<?php

// ==============
// Configuration
// ==============
$uploaddir = "uploads";
// Where you want the files to upload to -
//Important: Make sure this folders permissions is 0777!
$allowed_ext = "jpg, gif, png, pdf";
// These are the allowed extensions of the files that are uploaded
$max_size = "50000"; // 50000 is the same as 50kb
$max_height = "100"; // This is in pixels
$max_width = "100"; // This is in pixels
?>
And then add this code below the configuration:

<?php

// Check Entension
$extension = pathinfo($_FILES['file']['name']);
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths[$i] == "$extension") {
$ok = "1";
}
}

// Check File Size
if ($ok == "1") {
if($_FILES['file']['size'] > $max_size)
{
print "File size is too big!";
exit;
}

// Check Height & Width
list($width, $height, $type, $w) = getimagesize($_FILES['file']['tmp_name']);
if($width > $max_width || $height > $max_height)
{
print "File height and/or width are too big!";
exit;
}
?>
And there you go. That will check your file uploads. Here is the entire code if you need it:

form.php
<form action="upload.php" method="post" ENCTYPE="multipart/form-data">
File: <input type="file" name="file" size="30"> <input type="submit" value="Upload!">
</form>


upload.php
<?php

// ==============
// Configuration
// ==============
$uploaddir = "uploads";
// Where you want the files to upload to
//Important: Make sure this folders permissions is 0777!
$allowed_ext = "jpg, gif, png, pdf";
// These are the allowed extensions of the files that are uploaded
$max_size = "50000";
// 50000 is the same as 50kb
$max_height = "100";
// This is in pixels - Leave this field empty if you don't want to upload images
$max_width = "100";
// This is in pixels - Leave this field empty if you don't want to upload images

// Check Entension
$extension = pathinfo($_FILES['file']['name']);
$extension = $extension[extension];
$allowed_paths = explode(", ", $allowed_ext);
for($i = 0; $i < count($allowed_paths); $i++) {
if ($allowed_paths[$i] == "$extension") {
$ok = "1";
}
}

// Check File Size
if ($ok == "1") {
if($_FILES['file']['size'] > $max_size)
{
print "File size is too big!";
exit;
}

// Check Height & Width
if ($max_width && $max_height) {
list($width, $height, $type, $w) = getimagesize($_FILES['file']['tmp_name']);
if($width > $max_width || $height > $max_height)
{
print "File height and/or width are too big!";
exit;
}
}

// The Upload Part
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
move_uploaded_file($_FILES['file']['tmp_name'],$uploaddir.'/'.$_FILES['file']['name']);
}
print "Your file has been uploaded successfully! Yay!";
} else {
print "Incorrect file extension!";
}
?>
Enjoy!



Tutorial pages:
 3 Votes

You might also want to check these out:


Leave a Comment on "How To Upload Files Using PHP"
You must be logged in to post a comment.

Link to This Tutorial Page!


GET OUR NEWSLETTERS