我正在使用 OneUploaderBundle 和 jQuery File Upload 在我的 SF2 应用程序中上传照片。
通过阅读此处的文档:https ://github.com/1up-lab/OneupUploaderBundle简单上传工作正常,我上传的每张图片都存储在 /web/uploads/gallery 文件夹下,并具有唯一的生成名称(uniqid() 我猜)
我想要做的是:根据用户在表单中选择的内容更改文件夹和/或文件的名称(选择来自选择下拉菜单)。
这需要:
在 AJAX 调用期间传递数据
在 Symfony 中检索数据(我在 PostPersistEvent 上使用了一个监听器,如此处建议的https://github.com/1up-lab/OneupUploaderBundle/blob/master/Resources/doc/custom_logic.md)
- 使用自定义命名器(https://github.com/1up-lab/OneupUploaderBundle/blob/master/Resources/doc/custom_namer.md)
但关键是我不知道如何获取我的名字中选择的用户或更改上传目录,你能帮帮我吗?
谢谢
前端 JS:
<script type="text/javascript">
$(function () {
'use strict';
// Change this to the location of your server-side upload handler:
var url = '{{ oneup_uploader_endpoint('gallery') }}';
$('#fileupload').fileupload({
url: url,
dataType: 'html',
done: function (e, data) {
console.log(data);
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
});
听众:
namespace Acme\PhotoBundle\EventListener;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use Acme\PhotoBundle\Entity\Photo;
use Symfony\Component\HttpFoundation\Response;
class UploadListener
{
protected $manager;
public function __construct($doctrine)
{
$this->manager = $doctrine;
}
public function onUpload(PostPersistEvent $event)
{
$file = $event->getFile();
$response = $event->getRequest();
$object = new Photo();
$object->setOriginal($file->getPathName());
var_dump($response);enter code here
//$this->manager->persist($object);
//$this->manager->flush();
}
}