Skip to content

Instantly share code, notes, and snippets.

@taterbase
Created May 13, 2012 15:03
Show Gist options
  • Save taterbase/2688850 to your computer and use it in GitHub Desktop.
Save taterbase/2688850 to your computer and use it in GitHub Desktop.
Simple file upload in php
<!DOCTYPE html>
<html>
<head>
<title>Upload your files</title>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<p>Upload your file</p>
<input type="file" name="uploaded_file"></input><br />
<input type="submit" value="Upload"></input>
</form>
</body>
</html>
<?PHP
if(!empty($_FILES['uploaded_file']))
{
$path = "uploads/";
$path = $path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)) {
echo "The file ". basename( $_FILES['uploaded_file']['name']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
}
?>
@rwb99
Copy link

rwb99 commented Apr 18, 2020

make a "uploads" directory in the same place as you php file
mkdir uploads

change directory permissions
chmod 0777 /var/www/html/uploads

also make sure file_uploads = On is set in php.ini

setting upload_max_filesize = 10M and
post_max_size = 10M in php.ini should allow up to 10MB

but you also need to set client_max_body_size 10M; in nginx config or LimitRequestBody 10485760 in Apache

I'm still not having any success with uploading anything over 2mb

I'm using it for a wget server

@0cirius0
Copy link

Thanks for this script.It really helped to solve bigger issue i was having in understanding a php upload code

@munjoob
Copy link

munjoob commented Jul 13, 2020

try kleeja php file upload script
https://kleeja.org

Copy link

ghost commented Aug 27, 2020

Excelente ejemplo.. Gracias por publicar..

@kicktv
Copy link

kicktv commented Oct 28, 2020

@taterbase
good work . thanks for the script

@justinsanjp
Copy link

it dosent work

@dsinclair-work
Copy link

Awesome script, works great as long as you create an upload folder in the same destination as the upload.php

Copy link

ghost commented Feb 1, 2021

thanks a lot bro :D

@FAlbanni
Copy link

This sucks anyone would be able to upload a .php file and take control of your server, do NOT use it!

@AllenJB
Copy link

AllenJB commented Oct 9, 2021

This is a terrible example of handling file uploads.

It does not check for file upload errors (via the 'errors' element under $_FILES).

The 'name' is specified by the client and should not be trusted. It may also contain characters that are not valid for filenames on the servers filesystem.

There's no handling of duplicate filenames - one file upload could overwrite a previous file upload.

This code does not check the content of the uploaded file. You may be expecting an image to be uploaded, but the client may upload a PHP script instead - if that file is uploaded to a web accessible directory, the client could then execute that PHP script. This would lead to further compromises of your server and/or your hosting being used for malicious purposes (phishing, illegal content).

You should always check the content of uploaded files using the fileinfo extension, mime_content_type(), or a function specific to the expected content type (eg. the type returned by getimagesize() for images)

@Noemi4
Copy link

Noemi4 commented Jan 1, 2022

Thank you very much, this one finally works!

@Noemi4
Copy link

Noemi4 commented Jan 1, 2022

For the ones complaining, the point of this script is that beginners can understand the base code for uploading files, and can add validation afterwards.

@TinySonhh
Copy link

Thank you,

@BawdyAnarchist
Copy link

Late to the party, but THANK YOU for putting a dead simple minimalist version of an upload. The only other guides I saw had all this extra crap that caused errors, required multiple files, etc.

This file just works. You might need to change your download folder, but it's simple and solid.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment