/* - File Upload - Allows the upload of a file with specified (or no) limitations. - Returns 0 on success - Returns 1 if overwrite is disabled and file already exists - Returns 2 if it does not meet any valid extensions - Returns 3 if a max file size is set and this file exceeds it - Returns 4 if width is smaller than min width or height is smaller than min height - Returns 5 if width is larger than max width or height is larger than max height - Returns 6 if an unexpected error occurred and the file couldn't be uploaded $file - $_FILES['filename']; from a form with input type="file" and name="filename" $newLocation - The directory relative to the location of this script to move the file to, directory will be created if it does not exist already. $newName - The new name of the file without the extension (eg. "image") $validExtensions - Array containing a list of valid extensions, file will be blocked if it does not have any one of these extensions (set it to null for no limits on extensions) $overwrite - Overwrite the file if it already exists in this place and as this name? $isImage - If only images can be uploaded, set this to true. $minImgWidth - The minimum width the image can be. Set to 0 for no minimum width. $minImgHeight - The minimuim height the image can be. Set to 0 for no minimum height. $maxImgWidth - The maximum width the image can be. Set to 0 for no maximum width. $maxImgHeight - The maximum height the image can be. Set to 0 for no maximum height. $maxSize - Max size the file can be in bytes, set to 0 for unlimited. */ public function upload($file, $newLocation, $newName, $validExtensions = null, $overwrite = true, $isImage = false, $minImgWidth = 0, $minImgHeight = 0, $maxImgWidth = 0, $maxImgHeight = 0, $maxSize = 8388608) { $fileType = pathinfo($file['name'], PATHINFO_EXTENSION); $targFile = $newLocation . $newName . "." . $fileType; $failed = false; if (!$overwrite && file_exists($targFile)) { return 1; $failed = true; } if (!$failed) { if ($validExtensions != null) { $validExt = false; foreach ($validExtensions as $validExtension) { if ($fileType == $validExtension) $validExt = true; } if (!$validExt) { return 2; $failed = true; } } if (!$failed) { if ($maxSize > 0) { if ($file['size'] > $maxSize) { return 3; $failed = true; } } if (!$failed) { if ($isImage) { list($width, $height) = getimagesize($file['tmp_name']); if ($minImgWidth > 0) { if ($width < $minImgWidth) { return 4; $failed = true; } } if ($minImgHeight > 0) { if (!$failed) { if ($height < $minImgHeight) { return 4; $failed = true; } } } if ($maxImgWidth > 0) { if (!$failed) { if ($width > $maxImgWidth) { return 5; $failed = true; } } } if ($maxImgHeight > 0) { if (!$failed) { if ($height > $maxImgHeight) { return 5; $failed = true; } } } } if (!$failed) { if (!file_exists($newLocation)) mkdir($newLocation); if (move_uploaded_file($file['tmp_name'], $targFile)) return 0; else return 6; } } } } return 0; }