add-to-blog #34
43
dist/api/utils/imgUtils.php
vendored
Normal file
43
dist/api/utils/imgUtils.php
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user