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.
74 lines
2.3 KiB
PHP
74 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace brain\api\v1;
|
|
|
|
use brain\utility\FileUploader;
|
|
use brain\data\Settings;
|
|
use brain\data\Member;
|
|
|
|
class FilesAPI
|
|
{
|
|
public function __construct()
|
|
{
|
|
}
|
|
|
|
public static function uploadFiles($request, $type = null)
|
|
{
|
|
$upload = $request->getUploadedFiles(); //grab uploaded files
|
|
$options = $request->getParsedBody();
|
|
$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':
|
|
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 '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;
|
|
}
|
|
}
|