私は、ユーザーがサーバー (および携帯電話) に画像をアップロードできるようにするための非常に基本的なフォームを作成するのに役立つチュートリアルに従いました。
複数のファイルのアップロードを許可したいのですが、PHP スクリプトを変換する方法がわかりません。
単一の写真をアップロードするための以下の作業コードを複数の写真のアップロードに変換するにはどうすればよいですか?
私のコードの関連部分は次のとおりです。
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);
?>