I'm trying to make an upload script with html forms and PHP, I've seen a lot of people using move_uploaded_file
and I can't figure out what it does, I looked around and all other websites are too complex for me. Can someone "dumb" it down a bit for me?
An example of what i saw:
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
Also can someone explain $_FILES
to me aswell?
$_FILES is a superglobal, much like $_GET or $_POST, that stores the information about the uploaded file.
If the name of your upload input form element is 'myfile' then, after uploading you will have an assiciative array $_FILES['myfile'] storing all the data about the uploaded file. To learn about it, just var_dump() it:
var_dump($_FILES['myfile']);
All the uploaded files are usually first uploaded to the /tmp directory (or whatever directory is set for this purpose in the php.ini file). After doing some sanity checks about the file (like testing for the right mime type), you will want to move the file to it's final destination. That's what the move_uploaded_file() function is intendedn for.
In this case $_FILES['userfile']['tmp_name'] is the temporary file path of the uploaded file and $uploadfile should store the final path of the file.
move_uploaded_file — Moves an uploaded file to a new location
This function checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism). If the file is valid, it will be moved to the filename given by destination.
This sort of check is especially important if there is any chance that anything done with uploaded files could reveal their contents to the user, or even to other users on the same system.
Which part of that Manual you need help with?
$_FILES
from the PHP Manual:
An associative array of items uploaded to the current script via the HTTP POST method.
move_uploaded_file()
from the PHP Manual:
bool move_uploaded_file ( string $filename , string $destination )
This function checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism). If the file is valid, it will be moved to the filename given by destination.
You can use it like this:
if(move_uploaded_file($_FILES['picture']['tmp_name'], './uploads/'.$_FILES['picture']['name']))
echo 'File successfully uploaded';
else
echo 'File could not be uploaded';
$_FILES['picture']['tmp_name']
:
The temporary filename of the file in which the uploaded file was stored on the server.
$_FILES['picture']['name']
:
The original name of the file on the client machine.
For more information check out POST Method Uploads