Symfony 删除使用文件系统上传的图像

Symfony Delete image uploaded with filesystem

我想使用文件系统从我的 / uploads 文件夹中删除一张图片,但我做不到。这是我的代码。 非常感谢!

/**
 * 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);



}

这里的问题是你传递的路径抛出方法:

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

%kernel.project_dir% 在此位置不起作用,因为 Filesystem class 无法访问内核配置。你必须先像这样得到它:

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