我有配置blueimp的问题 . 当我在jsconsole中发送文件(点击:开始上传)时:

POST XXXapp_dev.php / _uploader / gallery / upload 500(内部服务器错误)

我用过:Simple example of the entity file to be uploaded with OneupUploaderBundle https://github.com/1up-lab/OneupUploaderBundle/issues/51#issuecomment-24878715

我的文件:services.yml:

Cms.upload_listener:
    class: Cms\AdminBundle\EventListener\UploadListener
    arguments: [@doctrine]
    tags:
        - { name: kernel.event_listener, event: oneup_uploader.post_upload, method: onUpload }

config.yml:

oneup_uploader:
    mappings:
        gallery:
            frontend: blueimp
            storage:
                service:              ~
                type:                 filesystem
                filesystem:           ~
                directory:            web/uploads/gallery
                stream_wrapper:       ~
                sync_buffer_size:     100K

使用routing.yml

oneup_uploader:
    resource: .
    type: uploader

〜实体/ File.php

/* ... */
    /**
     * @ORM\Entity
     * @ORM\Table(name="file")
     */
    class file {
        /**
         * @ORM\Column(type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id;

        /**
         * @ORM\Column(type="string")
         */
        protected $filename;
    }

〜/ EventListner / UploadListner.php

class UploadListener
{
    protected $manager;

    public function __construct(EntityManager $manager)
    {
        $this->manager = $manager;
    }

    public function onUpload(PostPersistEvent $event)
    {
        $file = $event->getFile();

        $object = new file();
        $object->setFilename($file->getPathName());

        $this->manager->persist($object);
        $this->manager->flush();
    }
}

调试路线:

_uploader_upload_gallery POST任何/ _uploader / gallery / upload

目录/ web /上传/图库位于服务器上 .

我想要实现的目标是什么?我需要将文件上传到服务器并向db添加记录 .

我认为配置不正确,但在哪里?

Edit 1: 也许有帮助

INFO - 获取未调用的侦听器时抛出异常(Catchable Fatal Error:Argument 1传递给Cms \ AdminBundle \ EventListener \ UploadListener :: __ construct()必须是Cms \ AdminBundle \ EventListener \ EntityManager的实例,Doctrine的实例\ Bundle \ DoctrineBundle \ Registry,在第455行的/home/cms/public_html/app/cache/dev/appDevDebugProjectContainer.php中调用并定义)上下文:{“exception”:“Object(Symfony \ Component \ Debug \ Exception \ ContextErrorException) )}} CRITICAL - 未捕获的PHP异常Symfony \ Component \ HttpFoundation \ File \ Exception \ FileException:“无法在/ home / cms / public_html / vendor / symfony / symfony / src / Symfony创建”/ uploads / gallery“目录” /Component/HttpFoundation/File/File.php第134行上下文:{“exception”:“Object(Symfony \ Component \ HttpFoundation \ File \ Exception \ FileException)”}

我创建了上传/图库! chmod 777.我不明白 .

Edit 2:

Cms.upload_listener:
    class: Cms\AdminBundle\EventListener\UploadListener
    arguments: ["@doctrine.orm.entity_manager"]
    tags:
        - { name: kernel.event_listener, event: oneup_uploader.post_upload, method: onUpload }

和:

directory:            ./uploads/gallery

现在创建,上传文件“uploads / gallery / ...”但是...

CRITICAL - 未捕获的PHP异常Symfony \ Component \ Debug \ Exception \ ContextErrorException:“Catchable Fatal Error:传递给Cms \ AdminBundle \ EventListener \ UploadListener :: onUpload()的参数1必须是Oneup \ UploaderBundle \ Event \ PostPersistEvent的实例, Oneup \ UploaderBundle \ Event \ PostUploadEvent实例给出“at /home/cms/public_html/src/Cms/AdminBundle/EventListener/UploadListener.php第17行上下文:{”exception“:”Object(Symfony \ Component \ Debug \ Exception \ ContextErrorException)“}

返回blueimp“内部服务器错误...”,并且不在实体中添加记录 .