<?php namespace api\utils; use Psr\Http\Message\UploadedFileInterface; class imgUtils { /** * Checks and uploads a file to the given directory * @param string $targetDir - Directory to upload the file to * @param UploadedFileInterface $img - File to upload * @return string|array - String with error message or array with the location of the uploaded file */ public function uploadFile(string $targetDir, UploadedFileInterface $img): string|array { $targetFile = $targetDir . basename($img->getClientFilename()); $uploadOk = 1; $imageFileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); // Check if file already exists if (file_exists($targetFile)) { return "The file already exists"; } // Check file size if ($img->getSize() > 2000000) { return "The file is too large, max 2MB"; } // Allow certain file formats if ($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") { return "Only JPG, JPEG, PNG & GIF files are allowed"; } $img->moveTo($targetFile); return array("imgLocation" => $targetFile); } }