Upload files
Allowing users to upload files is necessary for many websites, so how do we do this, exactly? But then again, there are some handy paperwork on it. Reviewed the trouble? Well, here's some help that's a little easier to digest.
First, you need the HTML page where the form will lie. This form must determine the maximum size of the file to upload and must have the file upload field itself
MAX_FILE_SIZE defines the maximum file size, in bytes, of course. The name attribute is an important part of the upload field (specifying the file value of the type attribute), as we will use this later in our script to know which files to upload (this is used to support multiple uploads).
Next, we want to upload the file. But first, it's important to understand the $_FILE[] array.
In the $_FILE[] array, there is one item for each field uploaded in the form to send the user this script. So, in our case, there is an index named 'userfield', for a field with this name in our form. The array of each value is also an associative array, with the following items and values (adapted explicitly from the documentation):
$target_file = '/path/to/upload/'.basename($_FILES['userfile']['name']);
?>
Key Values
'name' The file name uses the customer's computer.
'type' MIME type of file (eg image/gif). The browser does not always provide this, and the value should not be assumed to be correct.
'size' The size of the uploaded file (in bytes).
'tmp_name' file gives the uploaded file which should be transferred immediately and renamed after successful upload. The location is irrelevant since the method you use to move the file ( move_uploaded_file , which I used later) knows the location.
'error' The error code (or success code if 0) where the problem occurred while uploading. (error code)
Table 1: Brief introduction to keys and values
So, now we can get down to business. First, we get the file name we will want to give the uploaded file, and the directory we want to put it in.
$target_file = '/path/to/upload/'.basename($_FILES['userfile']['name']);
?>
Using basename is absolutely necessary. Without this, you are running a huge security risk. If the user wants to upload a file whose name starts going up using relative paths, like ../../../, they will eventually get eradicated and can browse to the original starting point of the file after implementing more directories. road.
Warning: It is very important to make sure that the server has permissions to write to this directory. If your server is running any distribution of Linux or Mac OS X, you will probably need properties for the directory.
Next, you simply set the uploaded file as target_file. I think this is done if it is for the success of the experiment.
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $target_file)) {
// Succeeded
echo 'Yay!';
} else {
// Failed
echo 'No!';
}
?>
That's really what happened. Very simple, huh? You can expand this by reading PHP's file sequence and unserializing objects. If you have any questions, feel free to post them in the forum.
http://www.bkjia.com/PHPjc/630495.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/630495.htmlTechArticleUploading files Allowing users to upload files is necessary for many websites, so, how do we do it, exactly ? But then again, there are some handy paperwork on it. Considered...