shell bypass 403
<?php
namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\helpers\helper;
use App\Models\Media;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator;
use Response;
class MediaController extends Controller
{
public function index()
{
$media = Media::orderBy('id', 'DESC')->get();
return view('admin.media.index', compact("media"));
}
public function add_image(Request $request)
{
$validator = Validator::make($request->all(), [
'image.*' => 'image|max:' . helper::imagesize() . '|' . helper::imageext(),
// 'image.*' => 'image|max:'.helper::imageext(),
], [
'image.max' => trans('messages.image_size_message'),
]);
if ($validator->fails()) {
return redirect()->back()->with('error', trans('messages.image_size_message') . ' ' . helper::appdata('')->image_size . ' ' . 'MB');
} else {
if ($request->has('image')) {
foreach ($request->file('image') as $file) {
$imgname = helper::imageresize($file, storage_path('app/public/admin-assets/images/item'));
$media = new Media();
$media->image = $imgname;
$media->save();
}
}
return redirect()->back()->with('success', trans('messages.success'));
}
}
public function delete_media(Request $request)
{
try {
$checkproduct = Media::where('id', $request->id)->first();
if (file_exists(storage_path('app/public/admin-assets/images/item/' . $checkproduct->image))) {
unlink(storage_path('app/public/admin-assets/images/item/' . $checkproduct->image));
}
Media::where('id', $request->id)->delete();
return 1;
} catch (\Throwable $th) {
return redirect()->back()->with('error', trans('messages.wrong'));
}
}
public function download(Request $request)
{
try {
$checkproduct = Media::where('id', $request->id)->first();
$filepath = storage_path('app/public/admin-assets/images/item/') . $checkproduct->image;
return Response::download($filepath);
} catch (\Throwable $th) {
return redirect()->back()->with('error', trans('messages.wrong'));
}
}
}