appKernel = $appKernel; $this->minio = $minio; } public function ckupload($access,Request $request): Response { // Fichier temporaire uploadé $tmpfile = $request->files->get('upload'); $extention = $tmpfile->getClientOriginalExtension(); // Répertoire de Destination $fs = new Filesystem(); $rootdir = $this->getParameter('kernel.project_dir') . '/public'; $fs->mkdir($rootdir."/uploads/ckeditor"); // Fichier cible $targetName = uniqid().".".$extention; $targetFile = "uploads/ckeditor/".$targetName; $targetUrl = $this->getParameter('appAlias')."uploads/ckeditor/".$targetName; $targetUrl = $this->generateUrl('app_minio_document',["file"=>"uploads/ckeditor/".$targetName]); $message = ""; //move_uploaded_file($tmpfile,$targetFile); $this->minio->upload($tmpfile,$targetFile,true); $output["uploaded"]=1; $output["fileName"]=$targetName; $output["url"]=$targetUrl; return new Response(json_encode($output)); } public function logo(Request $request): Response { return $this->redirectToRoute("app_minio_image",["file"=>"uploads/logo/".$request->getSession()->get("logolight")]); } public function image(Request $request): Response { $file=$request->query->get("file"); switch($file) { case "uploads/avatar/admin.jpg": case "uploads/avatar/noavatar.png": case "uploads/avatar/system.jpg": case "uploads/header/header.jpg": case "uploads/logo/logo.png": $file = str_replace("uploads","medias",$file); $filePath = $file; $content = file_get_contents($file); break; default: // C'est une url = on affiche l'url if(stripos($file,"http")===0) { $filePath = $file; $content = file_get_contents($file); } // C'est du contenu dynamique on download depuis minio elseif(stripos($file,"uploads")===0) { $filePath = $this->minio->download($file, $file, true); $content = file_get_contents($filePath); } // C'est du contenu statique on download depuis minio else { $filePath = $file; $content = file_get_contents($file); } break; } return new Response($content, 200, [ 'Content-Type' => mime_content_type($filePath), 'Cache-Control' => 'max-age='.(60 * 60 * 24 * 7), 'Expires' => gmdate(DATE_RFC1123, time() + 60 * 60 * 24 * 365), ]); } public function document(Request $request) { $file=$request->query->get("file"); $filePath = $this->minio->download($file, $file, true); $content = file_get_contents($filePath); return new Response($content, 200, [ 'Content-Type' => mime_content_type($filePath), 'Cache-Control' => 'max-age='.(60 * 60 * 24 * 7), 'Expires' => gmdate(DATE_RFC1123, time() + 60 * 60 * 24 * 365), ]); } }