THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline

#1 upload image

(02-07-2020 08:48:12)


Bonjour tout le monde,

Je commence sur Thelia. J'avais installé la version 2.3.4
je continue à me faire les dents dessus tongue

Il faudrait que je permette au client de pouvoir uploader une image dans sa page compte.
La j'avoue je suis un peux perdu, rien trouvé sur le forum sad
Auriez vous un exemple ? pour comprendre comment réaliser cette partie

Merci

Offline

#2 Re: upload image

(02-07-2020 10:04:55)


Bienvenue sur Thelia cool

Cette fonctionnalité n'existe pas de base. Il faudrait pour cela développer un module probablement.

Offline

#3 Re: upload image

(02-07-2020 10:50:34)


Pour uploader une image, il suffit d'utiliser la technique habituelle avec une Form, il y a un exemple ici : https://symfony.com/doc/2.8/controller/upload_file.html


OpenStudio Toulouse

Offline

#4 Re: upload image

(02-07-2020 11:01:05)


Grand merci à tous les deux
Je vais regarder

Offline

#5 Re: upload image

(07-07-2020 11:14:33)


Bonjour,

Je suis un peu perdu
j'ai créé mon module
le form

    protected function addPictureField(array $translationKeys, array $fieldsIdKeys)
    {
        $this->formBuilder->add("picture", FileType::class, array(
            "label" => $this->translator->trans($this->readKey("picture", $translationKeys), [], SendPicture::MESSAGE_DOMAIN),
            "label_attr" => ["for" => $this->readKey("picture", $fieldsIdKeys)],
            "required" => false,
            "constraints" => [
                new File([
                    'maxSize' => '1024k',
                    'mimeTypes' => [
                        'image/gif',
                        'image/jpeg',
                        'image/png',
                    ],
                    'mimeTypesMessage' => 'Please upload a valid picture',
                ])
            ],
            'data_class' => null,
            "attr" => array(
            )
        ));
    }

dans le controller

class SendPictureController extends BaseFrontController
{
public function sendpictureAction()
    {
        $this->checkAuth();
        $message = false;
        $customer = $this->getSecurityContext()->getCustomerUser();
        $Form = $this->createForm(SendPictureForm::FORM_NAME);
        try {
            /** @var Customer $customer */
            $customer = $this->getSecurityContext()->getCustomerUser();
            $customer_id = $customer->getId();
            $month = date('n');

            $form = $this->validateForm($Form, "post");
            $data = $form->getData();
.....

à la validation du form j'ai en retour l'erreur

Please check your input: Missing or invalid data: [picture] The file could not be found.

je souhaiterais limiter les formats et la taille de l'image
Merci

Offline

#6 Re: upload image

(07-07-2020 19:04:05)


La form doit avoir l'attribut "enctype="multipart/form-data"

<form methode="post" action="..." enctype="multipart/form-data"> ... </form>


OpenStudio Toulouse

Offline

#7 Re: upload image

(09-07-2020 11:53:47)


Bonjour,

l'upload de l'image fonctionne bien mais je me retrouve avec un dossier portant le nom de l'image et un fichier temp à l'intérieur.

            $game = new \Game\Game();
            $destinationPath = $game->getUploadDir() . DS . $uploadedFile->getClientOriginalName();


            if (null !== $fileModel = GameQuery::create()->filterByMonth($month)->findOneByCustomerId($customer_id)) {
                $localFile = $uploadedFile->move($destinationPath);

                $fileModel
                    ->setFile($uploadedFile->getClientOriginalName())
                    ->setChance("1")
                    ->save()
                ;
                return $this->generateSuccessRedirect($fileForm);
            }
....dir uploadDir\
                -> dir : image_tes.jpg
                               -> file : php1D92.tmp

Est ce normal ?
Comment avoir le fichier directement ?
J'aimerai renommer l'image une fois l'upload réalisé

Merci de votre aide

Last edited by Louis (09-07-2020 12:25:25)

Offline

#8 Re: upload image

(10-07-2020 07:42:08)


Bonjour,

Personne ?
ne peut me dire si c'est normal que je me retrouve avec un dossier portant le nom du fichier et un fichier tmp à l'intérieur.
Si je renomme le fichier tmp avec la bonne extension, le fichier s'ouvre.

Merci

Offline

#9 Re: upload image

(10-07-2020 09:15:02)


Je ne suis pas certain que tu comprenne ce que tu fais. Tu le copies dans quel répertoire le fichier uploadé ?


OpenStudio Toulouse

Offline

#10 Re: upload image

(10-07-2020 09:49:05)


J'ai compris mon erreur, merci ROADSTER31
trop C.. je suis, c'est le 2ieme param le nom du fichier