Symfony2: Edit file upload

后端 未结 3 1647
慢半拍i
慢半拍i 2021-02-04 18:35

I am using the cookbook article from symfony.com to implement a file upload option for images.

Now I want to load up other images to the entity.

The default stra

相关标签:
3条回答
  • 2021-02-04 19:22

    I have was in similar situation. I try to edit existing record in database with path to the file. When i edit record i must upload new file, what is not comfortable for users. In my solution i use variable tmp file for file hash and variable file name. All needed operation i made in Action edit class.

    Full example action class in bellow link

    https://github.com/marekz/php_examples/wiki/Symfony-how-to-edit-attachment-form

    0 讨论(0)
  • 2021-02-04 19:27

    The cookbook does not handle updates, in particular in the case where only the file changes.

    In this case, the PreUpdate event is not triggered, so you need to trigger $entity->preUpload() manually before the $em->persist($entity), so that the file upload gets handled in any case (preUpload will alter $entity->path so the persisting will occur)

    0 讨论(0)
  • 2021-02-04 19:27

    If you change only the upload field the lifecycle not run the upload method, In the cookbook is reported the solution in a quote box as below:

    The PreUpdate and PostUpdate callbacks are only triggered if there is a change in one of the entity's field that are persisted. This means that, by default, if you modify only the $file property, these events will not be triggered, as the property itself is not directly persisted via Doctrine. One solution would be to use an updated field that's persisted to Doctrine, and to modify it manually when changing the file.

    add a dummy field to update in the controller before persist event as suggest by this duscussion:

    https://github.com/symfony/symfony-docs/pull/564

    public function setFile(UploadedFile $file)
    {
        $this->file = $file;
        $this->updatedAt = new \DateTime();
    }
    
    0 讨论(0)
提交回复
热议问题