Vous utilisez un navigateur obsolète, veuillez le mettre à jour.
Veuillez utiliser un navigateur internet moderne avec JavaScript activé pour naviguer sur OpenClassrooms.com
Une question ? Pas de panique, on va vous aider !
Ce sujet est fermé.
Salut à tous,
je fais face à une situation depuis un certain temps qui est l'upload d'un fichier voici le formulaire:
class UserPhotoEditType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('photo', MediaType::class) ; } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'User\UserBundle\Entity\User', 'csrf_protection' => false, 'allow_extra_fields' => true, )); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'user_photo_edit'; } }
l' entity User
class User implements UserInterface { .... /** * @var \DateTime * * @ORM\Column(name="created_at", type="datetime", nullable=false) */ private $createdAt; /** * @var \DateTime * * @ORM\Column(name="updated_at", type="datetime", nullable=true) */ private $updatedAt; /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @ORM\OneToOne(targetEntity="Gallery\GalleryBundle\Entity\Media") */ private $photo; }
pour l'upload j'utilise le tuto suivant Développez votre site web avec le framework Symfony .
lorsque j'envoi le fichier au forma json avec postmant
{ "photo": { "file": "E:\\Images\\4259.jpg" } }
j'obtient cette erreur
statusCode = 400
{ "errors": [ "This value should not be blank." ], "children": { "photo": { "children": { "file": {} } } } }
Quelqu'un peut avoir une idée sur l'origine du problème et si possible aussi une piste de solution?
merci
Salut,
MediaType:: ou FileType::
-Edité par 1nsan3 14 septembre 2017 à 17:37:26
mediaType
voici le code
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\CallbackTransformer; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\HttpFoundation\File\File; class MediaType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('file', FileType::class) ; } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'data_class' => 'Gallery\GalleryBundle\Entity\Media', 'csrf_protection' => false, 'allow_extra_fields' => true, )); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'gallery_gallerybundle_Media'; } }
Bonjour,
Peux tu nous donner le code de la requête HTTP avec Postman (En cliquant sur "Code" à droite du formulaire -form-data)
Merci,
PATCH /apps/api/web/app_dev.php/admin/account/edit/photo HTTP/1.1 Host: localhost Accept: application/json;v=1.0 Authorization: g/mYYtIhRFqAAYrYZCvlxS19KZpi5USn4IWUjm54XRSHEALo3yRsay/YNezSFBihKc+69ngzm0B0tVnQoV1/UzsHnoLjGmIzL7JJVUPW9/ebKkai1/OF3SFf3ZIvuMfInATZCQ== Content-Type: application/json Content-Type: multipart/form-data Cache-Control: no-cache Postman-Token: 0e4aa732-6e06-4bf2-5b36-8e30abcc5c75 { "photo": { "file": "E:\\Images\\4259.jpg" } }
salut a tous
j'ai trouvé la solution à mon problème
si sa peut aider
https://ourcodeworld.com/articles/read/53/how-to-upload-a-file-with-jquery-ajax-in-php-or-symfony