I followed a tutorial that helped me make a really basic form to allow a user to upload an image to my server (and from their mobile phone).
I'd like to allow multiple file upload, but I'm not sure how to convert my PHP scripting.
How can I convert the working code below for single photo upload into multiple photo upload?
Here are the relevant portions of my code:
index.php:
<form action="upload.processor.php" enctype="multipart/form-data" id="upload" method="post" name="Upload">
<input id="file" name="file" type="file" accept="image/*" capture="camera" />
<input id="submit" name="submit" type="submit" value="Upload!">
</form>
upload.processor.php:
<?php
// make a note of the current working directory, relative to root.
$directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
// make a note of the directory that will receive the uploaded file
$uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'img/';
// make a note of the location of the upload form in case we need it
$uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'index.php';
// make a note of the location of the success page
$uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload.success.php';
// fieldname used within the file <input> of the HTML form
$fieldname = 'file';
// possible PHP upload errors
$errors = array(1 => 'php.ini: Max file size exceeded.',
2 => 'HTML form: Max file size exceeded.',
3 => 'File upload was only partial.',
4 => 'No file was attached.');
// check the upload form was actually submitted else print the form
isset($_POST['submit'])
or error('The upload form is required.', $uploadForm);
// check for PHP's built-in uploading errors
($_FILES[$fieldname]['error'] == 0)
or error($errors[$_FILES[$fieldname]['error']], $uploadForm);
// check that the file we are working on really was the subject of an HTTP upload
@is_uploaded_file($_FILES[$fieldname]['tmp_name'])
or error('Not an HTTP upload.', $uploadForm);
// validation to make sure the uploaded file is in fact an image.
@getimagesize($_FILES[$fieldname]['tmp_name'])
or error('Only image uploads are allowed!', $uploadForm);
// make a unique filename for the uploaded file and check it is not already
// taken... if it is already taken keep trying until we find a vacant one
// sample filename: 1140732936-filename.jpg
$now = time();
while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name'])) {
$now++;
}
// move the file to its final location and allocate the new filename to it
@move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
or error('Receiving directory has incorrect permissions.', $uploadForm);
?>