feat(sync-logs): tambahkan fitur download file CSV
- Tambahkan tombol download file di modal detail sinkronisasi. - Implementasikan pengecekan dan mekanisme download file di `SyncLogsController`. - Tambahkan route baru untuk mendukung proses download file. - Perbarui tampilan dan logika modal untuk mendukung fitur download. - Pastikan validasi file sebelum proses download dan berikan pesan error jika file tidak ditemukan. Signed-off-by: Daeng Deni Mardaeni <ddeni05@gmail.com>
This commit is contained in:
@@ -123,4 +123,32 @@ class SyncLogsController extends Controller
|
||||
|
||||
return response()->json($syncLog, 200, ['Content-Type' => 'application/json'], JSON_PRETTY_PRINT);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Download file
|
||||
*/
|
||||
public function downloadFile($id)
|
||||
{
|
||||
$log = KartuSyncLog::findOrFail($id);
|
||||
|
||||
// Periksa apakah file sudah dibuat
|
||||
if (!$log->is_csv || !$log->file_name) {
|
||||
return redirect()->back()->with('error', 'File CSV belum dibuat');
|
||||
}
|
||||
|
||||
// Periksa apakah file ada di lokasi yang ditunjukkan
|
||||
if ($log->file_path && File::exists($log->file_path)) {
|
||||
return response()->download($log->file_path, $log->file_name);
|
||||
}
|
||||
|
||||
// Jika tidak ada di path spesifik, coba cari di direktori umum
|
||||
$path = storage_path('app/biaya_kartu/' . $log->file_name);
|
||||
if (File::exists($path)) {
|
||||
return response()->download($path, $log->file_name);
|
||||
}
|
||||
|
||||
// Jika masih tidak ditemukan, beri pesan error
|
||||
return redirect()->back()->with('error', 'File tidak ditemukan di server');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user