Symfony删除随文件系统上载的映像



我想用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类没有访问内核配置的权限。你必须先这样得到它:

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

最新更新