Skip to content

Instantly share code, notes, and snippets.

@taterbase
Created May 13, 2012 15:03
Show Gist options
  • Select an option

  • Save taterbase/2688850 to your computer and use it in GitHub Desktop.

Select an option

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

rwb99 commented Apr 18, 2020

Copy link
Copy Markdown

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
Copy Markdown

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

@munjoob

munjoob commented Jul 13, 2020

Copy link
Copy Markdown

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

ghost commented Aug 27, 2020

Copy link
Copy Markdown

Excelente ejemplo.. Gracias por publicar..

@kicktv

kicktv commented Oct 28, 2020

Copy link
Copy Markdown

@taterbase
good work . thanks for the script

@justinsanjp

Copy link
Copy Markdown

it dosent work

@dsinclair-work

Copy link
Copy Markdown

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

ghost commented Feb 1, 2021

Copy link
Copy Markdown

thanks a lot bro :D

@FAlbanni

Copy link
Copy Markdown

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

@AllenJB

AllenJB commented Oct 9, 2021

Copy link
Copy Markdown

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

Noemi4 commented Jan 1, 2022

Copy link
Copy Markdown

Thank you very much, this one finally works!

@TinySonhh

Copy link
Copy Markdown

Thank you,

@BawdyAnarchist

Copy link
Copy Markdown

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.

@sayantanHack

Copy link
Copy Markdown

Steps to Reproduce

For windows

  1. Run apache server or using Xampp run apache.
  2. Create an upload folder in C:\xampp\htdocs
  3. Also put this upload.php on the same folder C:\xampp\htdocs

For *Nix

  1. Create an upload folder in /var/www/html/
  2. Put the upload.php file in the same folder /var/www/html/
  3. Run Apache service.

@sensboston

Copy link
Copy Markdown

If someone needs similar (i.e. very simple) but a way more advanced and useful solution, please be my guest: https://github.com/sensboston/uploader

@khan-cyber0

Copy link
Copy Markdown

thanks a lot

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