Symfony Удалить изображение, загруженное с файловой системой - PullRequest
1 голос
/ 09 июля 2020

Я хочу удалить изображение из моей папки / uploads с помощью fileSystem, но я не могу этого сделать. Вот мой код. Спасибо вам огромное!

/**
 * Permet de supprimer des images
 *
 * @Route("/delete/image/{id}", name="image_delete", methods={"DELETE"})
 *
 * @param Image $image
 * @param EntityManagerInterface $manager
 * @return Response
 */
public function deleteImage(Image $image, EntityManagerInterface $manager)
{
    /**
     * Je gère la suppression du dossier "uploads" ou l'image est stockée
     */
    //Je récupère le nom de l'image
    $filename = $image->getName();
    // Je crée une instance de kla classe fileSystem
    $fileSystem = new Filesystem();
    //Je supprime l'image du dossier
    $fileSystem->remove('%kernel.project_dir%/public/uploads/'.$filename);

    /**
     * Je gère la suppression en bdd
     */
    $manager->remove($image);
    $manager->flush();
    return new Response('deleted', Response::HTTP_OK);



}

1 Ответ

0 голосов
/ 09 июля 2020

Проблема здесь в пути, который вы передаете, бросьте метод:

$fileSystem->remove('%kernel.project_dir%/public/uploads/'.$filename);

%kernel.project_dir% не работает в этой позиции, потому что класс Filesystem не имеет доступа к конфигурации ядра. Вы должны получить его сначала вот так:

$projectDir = $this->getParameter('kernel.project_dir');
$fileSystem->remove($projectDir.'/public/uploads/'.$filename);
...