mirror of
https://bitbucket.org/studiotem/jandl-taskmanager-app.git
synced 2026-10-21 22:39:34 +00:00
59 lines
1.5 KiB
PHP
59 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class Attachment extends Model
|
|
{
|
|
use HasFactory;
|
|
|
|
public $timestamps = true;
|
|
public $guarded = ['id'];
|
|
|
|
public function mastertask()
|
|
{
|
|
return $this->belongsTo(MasterTask::class, 'master_task_id');
|
|
}
|
|
|
|
public function subtask()
|
|
{
|
|
return $this->belongsTo(SubTask::class, 'sub_task_id');
|
|
}
|
|
|
|
public static function uploadAttachmentsToS3($request, $mastertask)
|
|
{
|
|
$attachmentDataArray = [];
|
|
|
|
foreach ( $request as $file ) {
|
|
$extension = $file->getClientOriginalExtension();
|
|
$disk_name = uniqid() . '.' . $extension;
|
|
|
|
$path = 'jandl_taskmanager/attachments/' . $mastertask->id . '/' . $disk_name;
|
|
|
|
Storage::disk('s3')->put($path, $file->getContent(), 'public');
|
|
|
|
$attachmentDataArray[] = [
|
|
'original_name' => $file->getClientOriginalName(),
|
|
'disk_name' => $disk_name,
|
|
'path' => Storage::disk('s3')->url($path),
|
|
'extension' => $extension,
|
|
'content_type' => $file->getMimeType(),
|
|
'file_size' => $file->getSize(),
|
|
];
|
|
}
|
|
|
|
return $attachmentDataArray;
|
|
}
|
|
|
|
public function deleteFromS3()
|
|
{
|
|
$path = 'jandl_taskmanager/attachments/' . $this->master_task_id . '/' . $this->disk_name;
|
|
Storage::disk('s3')->delete($path);
|
|
|
|
return true;
|
|
}
|
|
}
|