upload script for file types was still looking at mime types instead of extensions so made that flip so files are sorted properly
73 lines
2.4 KiB
PHP
73 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;
|
|
}
|
|
}
|