我有配置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“内部服务器错误...”,并且不在实体中添加记录 .