MIF_E31210592/app/Http/Controllers/api/MateriMobileController.php

73 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers\api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Storage;
class MateriMobileController extends Controller
{
public function downloadMateri(Request $request)
{
// Validasi request
$request->validate([
'id_materi' => 'required|string',
]);
$id_materi = $request->input('id_materi');
// Dapatkan nama file dari database
$fileName = DB::table('materi')
->where('id_materi', $id_materi)
->value('lampiran_materi');
if ($fileName) {
// Dapatkan path lengkap ke file
$filePath = public_path('storage/' . $fileName);
// Periksa apakah file ada
if (file_exists($filePath)) {
// Tambahkan header "ngrok-skip-browser-warning"
return response()->download($filePath, basename($fileName), [], 'ngrok-skip-browser-warning: any');
} else {
// Jika tidak, kirimkan respons file tidak ditemukan
return response()->json(['message' => 'File tidak ditemukan'], 404);
}
} else {
// Jika tidak ada data materi yang ditemukan
return response()->json(['message' => 'Materi tidak ditemukan'], 404);
}
}
public function lihatMateri(Request $request)
{
// Validasi request
$request->validate([
'id_materi' => 'required|string',
]);
$id_materi = $request->input('id_materi');
// Dapatkan nama file dari database
$fileName = DB::table('materi')
->where('id_materi', $id_materi)
->value('lampiran_materi');
if ($fileName) {
// Dapatkan URL lengkap ke file
$fileUrl = Storage::url($fileName);
// Tambahkan header "ngrok-skip-browser-warning"
return response()->json([
'fileUrl' => asset($fileUrl),
]);
} else {
// Jika tidak ada data materi yang ditemukan
return response()->json(['message' => 'Materi tidak ditemukan'], 404);
}
}
}