Jump to content


Photo
- - - - -

[PHP] - [Uploading files] - [making]


  • Please log in to reply
21 replies to this topic

#1 making

making

    Young Padawan

  • Members
  • Pip
  • 1 posts
  • Location:Palestine

Posted 12 October 2004 - 04:42 PM



Welcome everyone :love:
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/"; ).




<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 :P
M@king





#2 Jaymz

Jaymz

    Retired P2L Staff

  • Members
  • PipPipPipPip
  • 4,104 posts

Posted 12 October 2004 - 04:49 PM

Very good script :love: 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 :P

#3 Gio

Gio

    Jedi In Training

  • Members
  • PipPip
  • 317 posts

Posted 13 October 2004 - 06:57 PM

Glad I am not the only making php tutorials on the forum.

#4 youngcity

youngcity

    Young Padawan

  • Members
  • Pip
  • 3 posts

Posted 03 May 2005 - 05:45 PM

how do you chmod a folder to 777?

#5 PsYcHo

PsYcHo

    Young Padawan

  • Members
  • Pip
  • 10 posts

Posted 03 May 2005 - 07:25 PM

you can chmod via ftp, or in cpanel... in ftp, right click the folder, and go to attributes or chmod, whichever yours has...

#6 Sinny

Sinny

    Young Padawan

  • Members
  • Pip
  • 144 posts

Posted 12 May 2005 - 07:57 PM

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 <_<

#7 adam123

adam123

    Retired P2L Staff

  • Members
  • PipPipPipPip
  • 2,306 posts
  • Location:London, UK
  • Interests:Programming and stuff.

Posted 13 May 2005 - 01:51 PM

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 :D

Yes, 'tis what this is.

#8 runedeath

runedeath

    Young Padawan

  • Members
  • Pip
  • 8 posts

Posted 13 May 2005 - 03:13 PM

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

#9 Sinny

Sinny

    Young Padawan

  • Members
  • Pip
  • 144 posts

Posted 13 May 2005 - 04:19 PM

That's awesome, thankyou!! :D
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!! :D

#10 TommyE

TommyE

    Young Padawan

  • Members
  • Pip
  • 55 posts
  • Location:Glade Valley, North Carolina, USA
  • Interests:I like webdesign, learning to code php, drag racing, soccer, posting on p2l and zymic forums, and swimming most of all ^_^

Posted 08 June 2005 - 08:33 PM

That is a script. Sure you can find a tut here on P2L :rolleyes:

#11 solitude

solitude

    Young Padawan

  • Members
  • Pip
  • 18 posts
  • Location:Texas, USA
  • Interests:Photoshop<br />Reading<br />Adventure like bunge jumping, hiking, surfing and million other things<br /><br />like traveling<br /><br />animals<br /><br />umm cooking is pride<br /><br />music<br />my fav singer is hilary duff i love her songs

Posted 14 July 2005 - 05:44 PM

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

#12 pixelfinity

pixelfinity

    Young Padawan

  • Members
  • Pip
  • 14 posts
  • Location:Probably at work

Posted 01 August 2005 - 10:45 AM

Great script (upload PHP)

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

Many thanks

#13 JoshT

JoshT

    Young Padawan

  • Members
  • Pip
  • 1 posts

Posted 02 August 2005 - 05:49 AM

Hey, how would i make it so that it will upload files to a mysql database?
Thanks
Josh

#14 ecrader

ecrader

    Young Padawan

  • Members
  • Pip
  • 1 posts

Posted 11 August 2005 - 03:32 PM

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

#15 Addict

Addict

    Young Padawan

  • Members
  • Pip
  • 1 posts

Posted 15 August 2005 - 02:30 PM

Thanks for this great tutorial.

I was just wondering if there was a way you could upload mutiple files?

#16 Firebird

Firebird

    Young Padawan

  • Members
  • Pip
  • 16 posts

Posted 20 October 2005 - 02:30 AM

Wow, cool script

#17 b00g3R

b00g3R

    Young Padawan

  • Members
  • Pip
  • 81 posts
  • Gender:Male
  • Location:Chicago, IL, USA

Posted 06 December 2005 - 06: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?

#18 Moezzie

Moezzie

    Young Padawan

  • Members
  • Pip
  • 1 posts

Posted 26 December 2005 - 06:06 AM

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!

#19 Nad

Nad

    Young Padawan

  • Members
  • Pip
  • 7 posts
  • Gender:Male
  • Location:England, The United Kingdom
  • Interests:Too much stuff to mention...

Posted 03 January 2006 - 12:04 PM

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

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:

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

Edited by Nad, 03 January 2006 - 04:42 PM.


#20 softmania

softmania

    Young Padawan

  • Members
  • Pip
  • 19 posts

Posted 26 January 2009 - 10:22 AM

what if i want to upload mp3 format file?




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users