backend dan penyesian upload file dinamis approval notifikasi
This commit is contained in:
@@ -111,28 +111,62 @@ class File extends Model
|
||||
// return $path;
|
||||
// }
|
||||
|
||||
// public static function storeFile($type, $id, $file)
|
||||
// {
|
||||
// // Pastikan directory tidak punya trailing slash
|
||||
// $directory = rtrim(self::getDirectory($type), '/');
|
||||
|
||||
// // Buat nama file yang unik dan aman
|
||||
// $originalName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
|
||||
// $extension = $file->getClientOriginalExtension();
|
||||
// $safeName = Str::slug($originalName);
|
||||
// $uniqueName = $safeName . '-' . uniqid() . '.' . $extension;
|
||||
|
||||
// // Upload file ke disk 's3' dengan visibility 'public'
|
||||
// $path = Storage::disk('s3')->putFileAs(
|
||||
// $directory,
|
||||
// $file,
|
||||
// $uniqueName,
|
||||
// 'public'
|
||||
// );
|
||||
|
||||
// // Kembalikan path dan nama unik agar bisa digunakan di controller
|
||||
// return [
|
||||
// 'path' => $directory . '/' . $uniqueName, // hasil konsisten
|
||||
// 'name' => $uniqueName,
|
||||
// ];
|
||||
// }
|
||||
|
||||
public static function storeFile($type, $id, $file)
|
||||
{
|
||||
// Pastikan directory tidak punya trailing slash
|
||||
// 1. Ambil nama disk dari konfigurasi default
|
||||
// Nilainya akan 'public', 'local', atau 's3' tergantung .env Anda
|
||||
$disk = config('filesystems.default');
|
||||
|
||||
$directory = rtrim(self::getDirectory($type), '/');
|
||||
|
||||
// Buat nama file yang unik dan aman
|
||||
// Buat nama file yang unik dan aman (kode Anda sudah bagus)
|
||||
$originalName = pathinfo($file->getClientOriginalName(), PATHINFO_FILENAME);
|
||||
$extension = $file->getClientOriginalExtension();
|
||||
$safeName = Str::slug($originalName);
|
||||
$uniqueName = $safeName . '-' . uniqid() . '.' . $extension;
|
||||
|
||||
// Upload file ke disk 's3' dengan visibility 'public'
|
||||
$path = Storage::disk('s3')->putFileAs(
|
||||
$directory,
|
||||
$file,
|
||||
$uniqueName,
|
||||
'public'
|
||||
// 2. Gunakan disk yang sudah dinamis
|
||||
$path = Storage::disk($disk)->putFileAs(
|
||||
$directory,
|
||||
$file,
|
||||
$uniqueName
|
||||
);
|
||||
|
||||
// Kembalikan path dan nama unik agar bisa digunakan di controller
|
||||
// 3. (Sangat Direkomendasikan) Tambahkan penanganan error
|
||||
if ($path === false) {
|
||||
Log::error("Gagal menyimpan file ke disk '{$disk}' pada path: {$directory}/{$uniqueName}");
|
||||
return false; // Kembalikan false jika upload gagal
|
||||
}
|
||||
|
||||
// 4. Kembalikan path asli dari hasil upload untuk konsistensi
|
||||
return [
|
||||
'path' => $directory . '/' . $uniqueName, // hasil konsisten
|
||||
'path' => $path, // Gunakan $path yang dikembalikan oleh Storage
|
||||
'name' => $uniqueName,
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user