2

i'm a beginner in symfony 4 :), i want to insert a csv file in my database via an input file in symfony 4

i try something in my controller but he transform the file.csv in file.txt, i don't understand why ?

public function upload(Request $request): Response
{

    $upload     = new Upload();
    $formUpload = $this->createForm(UploadType::class, $upload);
    $formUpload->handleRequest($request);
    if ($formUpload->isSubmitted() && $formUpload->isValid()) {

        $file     = $upload->getUpload();
        $fileName = md5(uniqid()).'.'.$file->guessExtension();
        $file->move($this->getParameter('upload_directory'), $fileName);
        $upload->setUpload($fileName);

        $reader = Reader::createFromPath('%kernel.root.dir%/../public/uploads/'.$fileName);
        $result = $reader->fetchAssoc();
        foreach ($result as $row){
            $customer = new Customers();
            $customer
                ->setCivility($row['civility'])
                ->setLastName($row['last_name'])
                ->setFirstName($row['first_name'])
                ->setEmail($row['email'])
                ->setNumber($row['number'])
                ->setDealer($row['dealer'])
                ->setDealerCode($row['dealer_zone'])
                ->setDealerZone($row['dealer_code'])
            ;
            $this->em->persist($customer);

        }
        $this->em->flush();
        $this->addFlash('success','Bien ajouté avec succès');
    }
    return $this->render('customers/upload.html.twig',[
        'formUpload' => $formUpload->createView()
    ]);
}
braknight
  • 23
  • 1
  • 3

1 Answers1

3

Try to use $file->getClientOriginalExtension() instead of $file->guessExtension()

  • yes, now i have my file.csv but he doesn't find the path, i have this error: %kernel.root.dir%/../public/uploads/d07a601bd149bebd5045abd4eda0b5e4.csv: failed to open stream: No such file or directory thank you for your help :) – braknight May 22 '19 at 13:39
  • @braknight I think you can just use the `$this->getParameter('upload_directory') . $fileName`. – Chris Jan 29 '20 at 15:01