You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
PHTML
54 lines
1.5 KiB
PHTML
2 years ago
|
<?php
|
||
|
|
||
|
namespace brain\api\v1;
|
||
|
|
||
|
use brain\utility\FileUploader;
|
||
|
|
||
|
class FilesAPI
|
||
|
{
|
||
|
public function __construct()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public static function uploadFiles($request, $type = null)
|
||
|
{
|
||
|
$upload = $request->getUploadedFiles(); //grab uploaded files
|
||
|
$file = $upload['upload_files'][0]; //front end sends one by one for progress tracking, so grab first
|
||
|
$type = $file->getClientMediaType();
|
||
|
$filesPath = '';
|
||
|
$path = date('Y') . '/' . date('m');
|
||
|
$response = [];
|
||
|
switch ($type) {
|
||
|
case 'image/jpeg':
|
||
|
case 'image/png':
|
||
|
case 'image/gif':
|
||
|
case 'image/svg':
|
||
|
$filesPath = '/assets/images/blog/' . $path . '/';
|
||
|
|
||
|
break;
|
||
|
case 'video/mp4':
|
||
|
$filesPath = '/assets/video/blog/' . $path . '/';
|
||
|
break;
|
||
|
case 'audio/mpeg':
|
||
|
$filesPath = '/assets/sound/blog/' . $path . '/';
|
||
|
break;
|
||
|
case 'application/pdf':
|
||
|
case 'text/plain':
|
||
|
case 'text/rtf':
|
||
|
$filesPath = '/assets/docs/blog/' . $path . '/';
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
FileUploader::uploadFile('../public' . $filesPath, $file);
|
||
|
|
||
|
$response = [
|
||
|
'message' => "File Uploaded. Great!",
|
||
|
"filePath" => $filesPath . urlencode($file->getClientFileName()),
|
||
|
"fileName" => urlencode($file->getClientFileName()),
|
||
|
'type' => $type,
|
||
|
];
|
||
|
|
||
|
return $response;
|
||
|
}
|
||
|
}
|