Я создал функцию, чтобы пользователь мог загружать файлы для статьи / готового проекта. Эти загруженные изображения появятся на главной странице сайта.
Когда я пытаюсь загрузить файлы в определенную папку в моей среде разработки, это работает. Однако, если я попытаюсь загрузить файлы в производственной среде, они не будут перемещены в папку назначения. Есть ли кто-нибудь, кто имел подобную проблему / может помочь мне?
Код ниже Сущность называется Artikel (статья на английском языке) Afbeeldingen -> Изображения на английском языке
/**
* @ORM\Entity(repositoryClass="App\Repository\ArtikelRepository")
*/
class Artikel
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="array")
*/
private $afbeeldingen = [];
public function getAfbeeldingen()
{
return $this->afbeeldingen;
}
public function setAfbeeldingen(array $afbeeldingen): self
{
$this->afbeeldingen = $afbeeldingen;
return $this;
}
}
Ниже приведен код services.yaml , в котором сконфигурирован каталог загрузки (images_directory)
parameters:
locale: 'en'
images_directory: '%kernel.project_dir%/www/uploads/artikelen'
Ниже приведен код Controller для объекта Artikel, называемый ArtikelController (Article и ArticleController на английском языке)
/**
* @Route("/admin/artikel/new", name="artikel_new", methods={"GET","POST"})
*/
public function new(Request $request): Response
{
$artikel = new Artikel();
$form = $this->createForm(ArtikelType::class, $artikel);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$articleImages = $form->get('afbeeldingen')->getData();
$images_directory = $this->getParameter('images_directory');
$afbeeldingen = array();
$teller = 0;
foreach ($articleImages as $articleImage) {
$originalFilename = pathinfo($articleImage->getClientOriginalName(), PATHINFO_FILENAME);
$filename = Urlizer::urlize($originalFilename) . '-' . uniqid() . '.' . $articleImage->guessExtension();
$afbeeldingen[$teller] = $filename;
$teller += 1;
try {
$articleImage->move($images_directory, $filename);
} catch (FileException $e) {
}
}
$artikel->setAfbeeldingen($afbeeldingen);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($artikel);
$entityManager->flush();
$this->addFlash('success', 'Artikel is aangemaakt.');
return $this->redirectToRoute('artikel_index');
}
return $this->render('artikel/new.html.twig', [
'artikel' => $artikel,
'form' => $form->createView(),
]);
}
Iбыл бы рад, если бы кто-то мог помочь мне! Заранее спасибо!