Je viens de tester avec :
et le slogs m'affichent toujours : File is null
Je vois vraiment pas ce que j'ai oublié dans le code pour que ça ne fonctionne pas
Bonjour à tous,
J'ai besoin d'une aide parce que je sèche complètement sur un problème d'upload de fichier pour un document avec Symfony 2
Je vais déjà vous mettre le code :
Entité : Document.php
Controller : DocumentController.php
DocumentType.php :
L'erreur que j'ai est :
Error: Call to a member function move() on null" at C:\wamp64\www\interface\interface\src\AppBundle\Entity\Document.php line 496 {"exception":"[object] (Symfony\Component\Debug\Exception\FatalErrorException(code: 0): Error: Call to a member function move() on null at C:\wamp64\www\interface\interface\src\AppBundle\Entity\Document.php:496)"} []
Je ne comprends pas pourquoi mon champ "file" est null, il est bien de type 'file'.
Merci d'avance pour votre aide !
Je viens de tester avec :
et le slogs m'affichent toujours : File is null
Je vois vraiment pas ce que j'ai oublié dans le code pour que ça ne fonctionne pas
Salut,
Que te retourne var_dump($this->getFile())??
Bonjour,
déjà remplace dans ton formulaire :
par
dans ton controller, tu as :
que l'on ne trouve pas dans Document
Bonjour Nico,
D'abord, merci d'avoir pris le temps de lire mon sujet.
En ce qui concerne le uploadFileDocument, c'est une erreur de ma part (ancien nom de fonction), actuellement j'utilise bien upload() :
Dans le log, j'ai bien le "File is null"
et j'ai testé ton idée d'utiliser FileType::class : :
Mais j'ai toujours cette erreur me disant :
[2016-04-13 10:55:04] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalErrorException: "Error: Call to a member function move() on null" at C:\wamp64\www\interface\interface\src\AppBundle\Entity\Document.php line 407 {"exception":"[object] (Symfony\Component\Debug\Exception\FatalErrorException(code: 0): Error: Call to a member function move() on null at C:\wamp64\www\interface\interface\src\AppBundle\Entity\Document.php:407)"} []
Je n'avais pas dans l'idée que FileType::class resolve ton problème, c'est juste pour rendre ton code plus consistant.
juste pour test dans ton controller remplace :
par
pour dire ton getFile() ne retourne pas forcement un null strict => donc passe au travers de :
Tu n'as pas modifié ton entity, c'est bien celle que tu as mis au debut de ton post ?
reparts au propre:
supprimes les caches dev, prod
mets à jour ton schema en db
vide ton dossier image
vide tes tables éventuellement
vérifies que tu n'as pas de listeners liés à Document
mets :
J'ai mis :
les logs : "app.INFO: File is null [] []"
Et tout est ok pour le reste (schema, listeners etc .. )
Tu devrais essayer de regarder ce que te donne le formulaire avec
$form->getData();
ou sinon passe par la super global $_FILES pour vérifier que tu as bien un fichier saisie dans ton formulaire
En fait, j'ai créé une nouvelle entité : File
J'ai créé le formulaire pour cette entité :
et mon controller:
Et ça marche impeccable. Maintenant, faut comprendre pourquoi l'upload intégré directement dans le formulaire de l'entité Document ne fonctionne pas.
Il y a une différence importante entre les deux :
premier cas ( extrait controller ) JsonResponse (tu charges ton fichier en ajax ??)
deuxième cas ( extrait controller ) render
je suis sûr à 99.99999999% que si dans le premier cas tu fais un affichage normal (comme 2eme cas) tu n'auras pas de problème
en effet Nico, j'ai testé sans ajax et ça fonctionne abec l'entité Document !