- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 OneupUploaderBundle用于上传文件。我多次阅读了这个包的文档,但我没有找到任何简单的实体示例来上传文件。我的期望是一个类似于 VichUploaderBundle
的类定义:
<?php
namespace Minn\AdsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Validator\Constraints as Assert;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity
* @Vich\Uploadable
*/
class MotorsAdsFile {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @Assert\File(
* maxSize="5M",
* mimeTypes={"image/png", "image/jpeg"}
* )
* @Vich\UploadableField(mapping="motors_files", fileNameProperty="filename")
* note: This is not a mapped field of entity metadata, just a simple property.
* @var File $file
*/
protected $file;
/**
* @ORM\Column(type="string", length=255, name="filename")
* @var string $filename
*/
protected $filename;
/**
* @ORM\Column(type="string", length=255, name="name")
* @var string $name
*/
protected $name;
// ...
}
最佳答案
没有预定义实体或 ORM 处理之类的东西。这有几个原因。这个bundle无法预见项目在上传逻辑方面的需求。如果有人想将文件存储到数据库中,完全是他们自己的选择,不应由第三方捆绑软件强制。 OneupUploaderBundle 提供的东西是最常见的前端上传器的后端。
免责声明:我已经复制并扩展了 an answer这已经存在于这个包的 GitHub 问题跟踪器中。在那里你会发现很多关于这个包是如何以及为什么现在是这样的见解。
鉴于您已经安装了一个可用的 Symfony2 项目,请遵循 installation instructions这个包的。我认为第1步和第2步应该没有问题,所以让我们直接钩到第3步,配置。
你说,你尝试整合jQuery File Uploader ,所以让我们为它创建一个映射。
打开文件 app/config/config.yml
并将以下几行添加到它的末尾。
oneup_uploader:
mappings:
gallery:
frontend: blueimp
app/config/routing.yml
.
oneup_uploader:
resource: .
type: uploader
src/Acme/DemoBundle/Resources/views/Welcome/index.html.twig
并删除
{% block content %}
之间的所有内容和
{% endblock %}
.我们不再需要这个了。
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="https://rawgithub.com/blueimp/jQuery-File-Upload/master/js/vendor/jquery.ui.widget.js"></script>
<script type="text/javascript" src="https://rawgithub.com/blueimp/jQuery-File-Upload/master/js/jquery.iframe-transport.js"></script>
<script type="text/javascript" src="https://rawgithub.com/blueimp/jQuery-File-Upload/master/js/jquery.fileupload.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#fileupload').fileupload({});
});
</script>
<input id="fileupload" type="file" name="files[]" data-url="{{ oneup_uploader_endpoint('gallery') }}" multiple />
web/uploads/gallery
每一个都有一个唯一的文件名。请注意,我们使用了一些 CDN 来提供所需的 JavaScript 文件。
<?php
namespace Minn\AdsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
*/
class MotorsAdsFile {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
public $id;
/**
* @ORM\Column(type="string", length=255, name="filename")
* @var string $filename
*/
protected $filename;
// ...
}
<?php
namespace Acme\HelloBundle\EventListener;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use Minn\AdsBundle\Entity\MotorsAdsFile;
class UploadListener
{
protected $manager;
public function __construct(EntityManager $manager)
{
$this->manager = $manager;
}
public function onUpload(PostPersistEvent $event)
{
$file = $event->getFile();
$object = new MotorsAdsFile();
$object->setFilename($file->getPathName());
$this->manager->persist($object);
$this->manager->flush();
}
}
<services>
<service id="acme_hello.upload_listener" class="Acme\HelloBundle\EventListener\UploadListener">
<argument type="service" id="doctrine.orm.entity_manager" />
<tag name="kernel.event_listener" event="oneup_uploader.post_persist" method="onUpload" />
</service>
</services>
EventListener
将在通过配置的映射上传新文件后立即调用。
MotorsAdsFile
并将文件路径存储到
filename
属性,将其持久化并将其刷新到基础数据库。
关于symfony - 使用 OneupUploaderBundle 上传实体文件的简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341843/
我正在尝试使用 OneupUploaderBundle用于上传文件。我多次阅读了这个包的文档,但我没有找到任何简单的实体示例来上传文件。我的期望是一个类似于 VichUploaderBundle 的类
我将 OneupUploaderBundle 与前端 blueimp 一起使用。我看到不错的前端,但我的后端有问题。在jsconsole中是: GET XXX/web/app_dev.php/_upl
我想将要上传的文件的 max_size 设置为 2m。我有下面的配置,但它仍然上传甚至 4m 文件...... oneup_uploader: mappings: motors
我正在尝试构建一个事件监听器,以便在创建实体时将图像的路径(url)持久保存到数据库中。我正在使用 Blueimp (jQuery-File-Uploader)。但是我得到了一个sql异常。我猜有些东
简介 大约两周前,我创建了关于使用 OneupUploaderBundle 上传的类似问题,但使用 FineUploader图书馆。遗憾的是,目前还没有答案。与此同时,我尝试设置不同的上传库。 我正在
简介 我正在使用 OneUploaderBundle 和 OneUpFlysystemBundle 试用 Syfony 4.1。 问题 我的配置在 Symfony 3.4 中运行良好,但在 Symfo
我是一名优秀的程序员,十分优秀!