Php OneUploaderBundle:文件没有上传,为什么?
我试图上传文件使用OneUploaderBundle和几乎所有的工作,但文件没有上传,我无法找到问题所在。这就是我的Php OneUploaderBundle:文件没有上传,为什么?,php,jquery,symfony,oneupuploaderbundle,Php,Jquery,Symfony,Oneupuploaderbundle,我试图上传文件使用OneUploaderBundle和几乎所有的工作,但文件没有上传,我无法找到问题所在。这就是我的UploadLister的外观: namespace AppBundle\EventListener; use Oneup\UploaderBundle\Event\PostUploadEvent; use Oneup\UploaderBundle\Event\PreUploadEvent; use AppBundle\Entity; class UploadListener
UploadLister
的外观:
namespace AppBundle\EventListener;
use Oneup\UploaderBundle\Event\PostUploadEvent;
use Oneup\UploaderBundle\Event\PreUploadEvent;
use AppBundle\Entity;
class UploadListener
{
protected $doctrine;
protected $originalName;
protected $tipoRecaudo3;
protected $tipoRecaudo4;
protected $tipoRecaudo5;
public function __construct($doctrine)
{
$this->doctrine = $doctrine;
}
public function onUpload(PreUploadEvent $event)
{
$file = $event->getFile();
$response = $event->getResponse();
$this->originalName = $file->getClientOriginalName();
$this->tipoRecaudo3 = $event->getRequest()->get('tipoRecaudo3', null);
$this->tipoRecaudo4 = $event->getRequest()->get('tipoRecaudo4', null);
$this->tipoRecaudo5 = $event->getRequest()->get('tipoRecaudo5', null);
$url = "";
$deleteUrl = "";
$response['files'] = [
'name' => $file->getClientOriginalName(),
'size' => $file->getSize(),
'url' => $url,
'deleteUrl' => $deleteUrl,
'deleteType' => 'DELETE'
];
}
public function onPostUpload(PostUploadEvent $event)
{
$em = $this->doctrine->getManager();
$request = $event->getRequest();
$productoSolicitud = $em->getRepository('AppBundle:ProductoSolicitud')->find($request->getSession()->get('productoSolicitudId'));
$recaudosTramiteProductoSolicitud = new Entity\RecaudosTramitesProductoSolicitud();
$recaudosTramiteProductoSolicitud->setProductoSolicitud($productoSolicitud);
$recaudosTramiteProductoSolicitud->setArchivo($this->originalName);
if ($this->tipoRecaudo3 !== null)
{
$recaudosTramiteId = $this->tipoRecaudo3;
} else if ($this->tipoRecaudo4 !== null)
{
$recaudosTramiteId = $this->tipoRecaudo4;
} elseif ($this->tipoRecaudo5 !== null)
{
$recaudosTramiteId = $this->tipoRecaudo5;
}
$recadudoTramite = $em->getRepository('AppBundle:RecaudosTramite')->find($recaudosTramiteId);
$recaudosTramiteProductoSolicitud->setRecaudosTramite($recadudoTramite);
$em->persist($recaudosTramiteProductoSolicitud);
$em->flush();
}
}
由于实体被持久化到BD,所以它可以工作。现在,这就是我对bundle的配置如何查看config.yml
:
oneup_uploader:
mappings:
recaudos:
frontend: blueimp
storage:
service: ~
type: filesystem
filesystem: ~
directory: %kernel.root_dir%/../web/uploads/recaudos
stream_wrapper: ~
allowed_mimetypes: [application/msword,image/jpeg,image/pjpeg,image/png,application/pdf,application/vnd.oasis.opendocument.text]
error_handler: oneup_uploader.error_handler.noop
use_orphanage: true
enable_progress: true
enable_cancelation: true
namer: oneup_uploader.namer.uniqid
在细枝模板级别,我已经:
<form id="cargaRecaudos3" action="" method="POST" enctype="multipart/form-data" class="form-horizontal" role="form">
<input id="fileUpload3" class="fileUpload" type="file" name="fileUpload3[]" data-url="{{ oneup_uploader_endpoint('recaudos') }}" multiple />
</form>
你知道为什么文件没有上传吗?我使用的是VichUploader包中的同一个文件夹,这些文件是上载的,所以权限可能不是问题,有什么想法吗
编辑
我写了一个
die('meep')
,响应返回了die,但文件仍然没有上传,对此有什么建议吗?快速检查您的代码,我发现您的javascript代码中缺少一个
$(document).ready(function(){
$('#fileUpload3').fileupload(); // the missing # is here
});
弗斯特
如果是您第一次运行此捆绑包,则所有人都会经常出错:检查您的文件夹web
是否可以写入
第二
尝试使捆绑包的配置变得简单,如下所示:
oneup_uploader:
mappings:
recaudos:
frontend: blueimp
enable_progress: true
至于第一个解决方案,这不是问题所在,我正在使用VichUploader捆绑包的目录,它可以工作,至于第二个已经尝试过了,没有区别,这是第一次使用它,但是第一次不起作用,你能帮我解决这个问题吗?如果可以的话,我们是否应该进行聊天?如果我们在这里找到了解决方案,我们是否应该进行聊天?你知道如何启动它吗?让我们一起来。我在等你,请通过上面的链接进入聊天室
oneup_uploader:
mappings:
recaudos:
frontend: blueimp
enable_progress: true