fipamo/app/Services/FileUploadService.php
ro 6a0c583a4f
file upload extensions hot fix
upload script for file types was still looking at mime types instead of
extensions so made that flip so files are sorted properly
2024-03-11 16:42:46 -06:00

74 lines
2.4 KiB
PHP

<?php
namespace App\Services;
class FileUploadService
{
public function __construct()
{
}
public static function handleFile($request, $type = null)
{
//$options = $request->getParsedBody();
//front end sends one by one for progress tracking, so grab first
$file = $request->file('upload_files');
$type = $file[0]->extension();
$public_path = '../public';
$filesPath = '';
$path = date('Y') . '/' . date('m');
$response = [];
switch ($type) {
case 'jpeg':
case 'jpg':
case 'png':
case 'gif':
if (isset($options["source"])) {
if ($options["source"] == "avatar-upload") {
$filesPath = '/assets/images/user/' . $path . '/';
//Member::updateData('avi', $filesPath . $file->getClientFileName());
} else {
$filesPath = '/assets/images/user/' . $path . '/';
// Settings::updateGlobalData('background', $filesPath . '/' . $file->getClientFileName());
}
} else {
$filesPath = '/assets/images/blog/' . $path . '/';
}
break;
case 'mkv':
case 'mp4':
$filesPath = '/assets/video/blog/' . $path . '/';
break;
case 'ogg':
case 'mp3':
$filesPath = '/assets/sound/blog/' . $path . '/';
break;
case 'pdf':
case 'txt':
case 'rtf':
$filesPath = '/assets/docs/blog/' . $path . '/';
break;
}
try {
// if does not exist, so lets create it.
if (!is_dir($public_path . $filesPath)) {
mkdir($public_path . $filesPath, 0755, true);
}
$filename = urlencode($file[0]->getClientOriginalName());
$file[0]->move($public_path . $filesPath, $filename);
} catch (RuntimeException $e) {
echo 'ERROR ' . $e->getMessage();
}
$response = [
'message' => "File Uploaded. Great!",
"filePath" => $filesPath . urlencode($file[0]->getClientOriginalName()),
"fileName" => urlencode($file[0]->getClientOriginalName()),
'type' => $type,
];
return $response;
}
}