Files
boursecu_server/app/Http/Controllers/Admin/FileController.php
T

57 lines
1.7 KiB
PHP
Raw Normal View History

2026-02-16 09:29:37 +00:00
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\File;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class FileController extends Controller
{
/**
* make directory in Public Storage By Date
*
* @return string
*/
2026-06-23 14:20:45 +03:30
protected function createDir(): string
2026-02-16 09:29:37 +00:00
{
$now = Verta();
$path = preg_replace('/-/', '/', $now->formatDate());
2026-06-23 14:20:45 +03:30
$disk = Storage::disk('public');
if (! $disk->exists($path)) {
$disk->makeDirectory($path);
$disk->makeDirectory($path.'/thumb');
2026-02-16 09:29:37 +00:00
}
2026-06-23 14:20:45 +03:30
2026-02-16 09:29:37 +00:00
return $path;
}
2026-06-23 14:20:45 +03:30
2026-02-16 09:29:37 +00:00
public function store(Request $request)
{
// Store FIle in Public Storage By Date
// Date Sample is : <Year>/<Month>/<Day> of today
$data = $request->all();
$path = $this->createDir();
2026-06-23 14:20:45 +03:30
$uploaded = $request->file('file');
$data['original_name'] = $uploaded->getClientOriginalName();
$data['ext'] = $uploaded->getClientOriginalExtension();
2026-02-16 09:29:37 +00:00
if (!isset($data['title']) || is_null($data['title'])) {
$data['title'] = $data['original_name'];
}
$file_name_src = md5(time() . $data['original_name']);
$file_name = $file_name_src . '.' . $data['ext'];
$data['has_thumb'] = false;
2026-06-23 14:20:45 +03:30
$data['size'] = $uploaded->getSize();
Storage::disk('public')->putFileAs($path, $uploaded, $file_name);
2026-02-16 09:29:37 +00:00
$data['src'] = 'storage/' . $path . '/' . $file_name;
// $data['size'] = $file->getSize();
$data['user_id'] = auth()->id();
$data['sts'] = 1;
$file_create = File::create($data);
return response()->json($file_create);
}
}