Help - Search - Members - Calendar
Full Version: [PHP] - [Uploading files] - [making]
Pixel2Life Forum > Member Tutorials and Requests > Forum Tutorial Archives > PHP Tutorials
making


Welcome everyone hiya.gif
here you'll learn how to upload files using PHP in a very simple way.

first put the following code in one file (upload.php)
create a directory called (images) or whatever you want "don't forget to change ( $upload_dir = "images/"; ).




CODE
<html>

<head>
<title>Upload File</title>
</head>

<form action="upload.php" method="post" enctype="multipart/form-data">
Browse a File to Upload:<br>
<input type="file" name="filetoupload"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="<?echo $size_bytes; ?>">
<br>
<input type="Submit" value="Upload File">
</form>

<?php
/*
Author:  Mohammed Ahmed(M@king)
E-mail:  m at maaking dot com
WWW   :  http://www.maaking.com
*/
//**********************************************************************//
//  $_FILES['filetoupload']  is the value of                            //
// file field from the form. <input type="file" name="filetoupload">    //
//**********************************************************************//

// this is the upload dir where files will go.
//Don't remove the /
//Chmod it (777)
$upload_dir = "images/";   //change to whatever you want.
// files less than 1MB
$size_bytes = 1048576; //bytes  will be uploaded
$limit_file_type = "no"; //Do you want to limit the types of files uploaded. (yes/no)
// specify file types.
$allowed_file_type = array('image/gif',
                          'image/pjpeg',
                          'image/jpeg',
                          'image/png',
                          'image/jpg');

         //check if the directory exist or not.
         if (!is_dir("$upload_dir")) {
     die ("The directory <b>($upload_dir)</b> doesn't exist");
         }
         //check if the directory is writable.
         if (!is_writeable("$upload_dir")){
            die ("The directory <b>($upload_dir)</b> is NOT writable, Please Chmod (777)");
         }

//Check first if a file has been selected
//is_uploaded_file('filename') returns true if
//a file was uploaded via HTTP POST. Returns false otherwise.
if (is_uploaded_file($_FILES['filetoupload']['tmp_name']))
{//begin of is_uploaded_file

        //Get the Size of the File
        $size = $_FILES['filetoupload']['size'];
        //Make sure that $size is less than 1MB (1000000 bytes)
        if ($size > $size_bytes)
        {
            echo "File Too Large. File must be <b>$size_bytes</b> bytes.";
            exit();
        }
             //check file type
        if (($limit_file_type == "yes") && (!in_array($_FILES['filetoupload']['type'],$allowed_file_type)))
        {
            echo"wrong file type";
            exit();
        }

        // $filename will hold the value of the file name submetted from the form.
        $filename =  $_FILES['filetoupload']['name'];
        // Check if file is Already EXISTS.
        if(file_exists($upload_dir.$filename)){
            echo "Oops! The file named <b>$filename </b>already exists";
            exit();
        }

        //Move the File to the Directory of your choice
        //move_uploaded_file('filename','destination') Moves afile to a new location.
        if (move_uploaded_file($_FILES['filetoupload']['tmp_name'],$upload_dir.$filename)) {

           //tell the user that the file has been uploaded and make him alink too;).
           echo "File (<a href=$upload_dir$filename>$filename</a>) uploaded!";
           exit();

        }
        else
        {
            //Print error
            echo "There was a problem moving your file";
            exit();
        }
}//end of is_uploaded_file


?>







what we used?

-The Super Global Variable $_FILES is used in PHP 4.x.x.

$_FILES['upload']['size'] ==> Get the Size of the File in Bytes.
$_FILES['upload']['tmp_name'] ==> Returns the Temporary Name of the File.
$_FILES['upload']['name'] ==> Returns the Actual Name of the File.
$_FILES['upload']['type'] ==> Returns the Type of the File.

****************
-Functions used

1- (!is_dir("$upload_dir"))
checks if the directory exist or not.

2- (!is_writeable("$upload_dir"))
checks if the directory is writable.

3- (is_uploaded_file($_FILES['filetoupload']['tmp_name'])
Checks first if a file has been selected

4- (!in_array($_FILES['filetoupload']['type'],$allowed_file_type))
checks file type eg. "gif,jpg etc."

5- (file_exists($upload_dir.$filename))
Checks if file is Already EXISTS.

6- (move_uploaded_file($_FILES['filetoupload']['tmp_name'],$upload_dir.$filename))
Moves the File to the Directory of your choice eg. "images"

- IS it a very simple and powerful WAY???.
- Enjoy hiya.gif
M@king



Jaymz
Very good script smile.gif A word to people using this, make sure you chmod your directory to 77 so that php can write to it... I made that mistake and couldn't for the life of me figure out why it wasn't working...

Very good keep em coming smile.gif
Gio
Glad I am not the only making php tutorials on the forum.
youngcity
how do you chmod a folder to 777?
PsYcHo
you can chmod via ftp, or in cpanel... in ftp, right click the folder, and go to attributes or chmod, whichever yours has...
Sinny
Hi, sorry for the slight bump, I just wanted to query you. I am a complete php newb, and I've been looking for a php script that let's users upload files without ftp access on a forum, is that what this script is? Sorry to be such a newb sad.gif
adam123
QUOTE(Sinny @ May 13 2005, 01:57 AM)
Hi, sorry for the slight bump, I just wanted to query you. I am a complete php newb, and I've been looking for a php script that let's users upload files without ftp access on a forum, is that what this script is? Sorry to be such a newb sad.gif

Yes, 'tis what this is.
runedeath
HOW TO CHMOD 777:

Either go to your cpanel and click on the folder to CHMOD then choose the permissions..

or...

Go to your ftp browser and right click on the file you wish to CHMOD and click either on * : properties / CHMOD / attributs and set it's permissions... very easy..!! this is basics all!!!!!! if u cant do this then dont bother learning PHP! lol
Sinny
That's awesome, thankyou!! victory.gif
Is there a way to have it restricted? For example a log-in page on the index and it takes you to uploader? If anyone knows it would be greatly appreciated, thanks!! victory.gif
TommyE
That is a script. Sure you can find a tut here on P2L smile.gif
solitude
i'm reely new at this i made a forum on phpbb u know forums.cjb.net

how would i use this tutorials there or where can i find tutorials or it
i still dont understand how to put ur banner or logo on the skin
please help me some1

thanxx
pixelfinity
Great script (upload PHP)

is there a way (or could you submit) a progress bar graphic ???

Many thanks
JoshT
Hey, how would i make it so that it will upload files to a mysql database?
Thanks
Josh
ecrader
Hi,

I think I'm missing something. Uploaded the script and it seems to be working fine. But, when I go to my FTP site to retreave the files, I don't have permission to download them. It says they are owned by 'nobody'.

How do I get these files?

Thanks for your help!!!
Emily
Addict
Thanks for this great tutorial.

I was just wondering if there was a way you could upload mutiple files?
Firebird
Wow, cool script
b00g3R
My question is for that script.. is there a way to make it where it will create a folder automatically with the username? like say i have a couple ppl that register my site.. and say some of the names are 1. myname 2. myothername 3. imcool ... now i want it where when they register eitehr a folder will automatically be made with that users login name and then when they go to upload a file it will be put into there login names folder.. ?? does anyone know how to?
Moezzie
very nice tutorial. l realy like it.
Is there any way to get the uploaded in a directory displayed so that people can download what's ben uploaded to?
havent found anything of that type yet.

Keep up the good work!
Nad
nice tutorial! also, thanks for pointing out what it all means because i have never been able to get my head around php and file uploading

QUOTE(b00g3R @ Dec 6 2005, 11:00 AM) *
My question is for that script.. is there a way to make it where it will create a folder automatically with the username? like say i have a couple ppl that register my site.. and say some of the names are 1. myname 2. myothername 3. imcool ... now i want it where when they register eitehr a folder will automatically be made with that users login name and then when they go to upload a file it will be put into there login names folder.. ?? does anyone know how to?


i have always wondered how to do this aswell. anyone know how?

edit:
in your registration file, after the user has been registered, input:

CODE
mkdir("/uploads/" .$username. "/", 0777);


where $username is the var of the users' name inputted into the form/db.
this will make a folder with the username in the uploads folder and will be chmodded 777.
i have tried this and it works of, now you can just edit the upload script move paths to like "uploads/" .$_SESSION['username']. " or "uploads/" .$username. " or summa.

fixed error in code
softmania
what if i want to upload mp3 format file?
Hello-World
Thanks for sharing. smile.gif
Wybe
QUOTE (softmania @ Jan 26 2009, 04:22 PM) *
what if i want to upload mp3 format file?


you have to add the mime type for an MP3 to the allowed files array. I don't know what it is exactly, but it's probably better if you'd figure that out yourself anyway 0:) for example, if you could echo the filetype in case a file fails to upload properly, like debugging, you'd immediately know what filetype your mp3 has, and it helps figuring out why your script doesnt work if you come across a file with a weird/unknown/unexpected MIME.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.