39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Web;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\CustomerIsoUpload;
|
|
use App\Services\Hosting\Iso\IsoUploadService;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\View\View;
|
|
|
|
class IsoUploadController extends Controller
|
|
{
|
|
public function index(Request $request): View
|
|
{
|
|
$uploads = CustomerIsoUpload::query()
|
|
->where('user_id', $request->user()->id)
|
|
->latest()
|
|
->get();
|
|
|
|
return view('iso-uploads.index', compact('uploads'));
|
|
}
|
|
|
|
public function store(Request $request, IsoUploadService $service): RedirectResponse
|
|
{
|
|
$request->validate([
|
|
'iso' => ['required', 'file', 'mimes:iso', 'max:'.((int) config('hosting.iso_upload.max_size_mb', 10240) * 1024)],
|
|
]);
|
|
|
|
try {
|
|
$service->upload($request->user(), $request->file('iso'));
|
|
} catch (\Throwable $e) {
|
|
return back()->withErrors(['iso' => $e->getMessage()]);
|
|
}
|
|
|
|
return redirect()->route('iso-uploads.index')->with('success', 'ISO hochgeladen.');
|
|
}
|
|
}
|