问题标签 [sonata-media-bundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - 未定义助手“sonata_media”
我正在使用 SonataMediaBundle 并按照他们网站https://sonata-project.org/bundles/media/2-2/doc/index.html中的说明进行安装/配置
我可以保存一个媒体文件并链接到另一个实体(ManyToOne),但是当我尝试使用以下代码呈现图像路径时:
它给了我一个错误:
未定义助手“sonata_media”。
我不知道我应该怎么做。有人帮我解决这个问题吗?
谢谢。
编辑:我使用 PHP 作为模板引擎。
php - Sonata Media - 自定义下载策略
我有一个名为“文档”的实体,我使用奏鸣曲媒体来处理文件管理。因此,管理员可以添加一个新文档并附加一个文件,这个文档被分配给一个用户。
我的问题是:我希望用户能够通过“受保护的 URL”下载分配给他们的文件(因为如果您更改下载 url 末尾的数字,您可以下载分配给他们的文件给其他用户)
根据奏鸣曲媒体的文档,我需要创建一个下载策略和服务。我做到了,我称之为:PrivateDownloadStrategy.php(并制作了服务)这个文件应该基于RolesDownloadStrategy.php,因为我希望管理员能够下载所有文件,但如何让用户能够下载分配给他们的文件?
这是我实际的 PrivateDownloadStrategy.php(来自rolesDownloadStrategy.php 的副本)
和服务:
symfony - SonataMedia - 为视频生成的公共 url 返回错误的文件名和类型
我将 SonataMediaBundle 2.3.3 与 Symfony 2.5.12 一起使用。当我生成一个 publicUrl 时,它给了我一个错误的路径(而且带有 png 扩展名)。
这是我的 sonata.yml 文件:
在我的控制器中:
返回带有错误“png”扩展名的错误文件名:
但是,我可以根据提供者参考检索正确创建的文件名(例如:db826fcb917f488cadf3b6bf19594bc0e2b123ac.qt):
但是,我仍然需要对该资源的整个路径进行硬编码。有没有办法为自定义视频文件获取正确的 publicUrl?例如这个'qt' quicktime 文件的链接?
谢谢
symfony - Sonata Media Bundle 中一个练习的多种媒体
我在 Sonata 媒体包中遇到了这个奇怪的问题。
基本上,我有一个可以有很多图片的练习。
我的练习映射(它是法语)是:
然后我转到 Application/Sonara/MediaBundle/Entity/Media.php 并添加一个字段 $exercice:
发生的奇怪事情:
- 当我运行时:
php app/console doctrine:generate:entities Application\Sonata\MediaBundle:Media
我在 Media 实体中看不到任何用于 Exercice 的 setter 或 getter。- 我在探查器中收到此错误:
Acme\AcmeBundle\Entity\Exercice#medias 关联是指不存在的拥有方字段 Application\Sonata\MediaBundle\Entity\Media#exercice。
config 的相关部分:
orm: auto_generate_proxy_classes: "%kernel.debug%" auto_mapping: true 映射: ApplicationSonataMediaBundle: ~ SonataMediaBundle: ~
我究竟做错了什么 ?
谢谢
php - 如何使用 SonataMediaBundle 在树枝中获取图像路径?
我正在使用 SonataMediaBundle 来跟踪我的图像。我可以使用奏鸣曲的助手在树枝中渲染图像:
这将呈现为<img src="the src">
但是,我想要获得的是裸路径,所以我可以例如在我的 img.xml 中添加一个类。就像是:
显然, asset(user.profilepic)
返回的不是路径,而是对象,而且该对象似乎不包含图像的路径。
编辑
也找到了我的部分答案:
显然,可以将块的输出设置为变量,然后将其传递给资产函数。
symfony - 定期错误:zend_mm_heap 损坏
描述:通过 API 添加文件时,服务器会定期崩溃,并在 /var/log/httpd/error_log 中显示错误:zend_mm_heap 已损坏。有时会发生这种情况,然后其本身开始正常工作。即文件正常加载,然后停止加载。虽然此时对方可以正常加载。
我使用 API /api/providers/sonata.media.provider.file/media
文件系统的提供者:sonata.media.filesystem.ftp
开发环境:无论dev/prod
作曲家:
- 奏鸣曲项目/媒体包:“2.3.x-dev”
- knplabs/gaufrette: >=0.1.4
阿帕奇+ mod_php:
- httpd-2.2.15-47.el6.centos.x86_64
- httpd-itk-2.2.22-7.el6.x86_64
- php55w-5.5.30-2.w6.x86_64
其他:
- zend.enable_gc = 关闭
- opcache.fast_shutdown = 关闭
- USE_ZEND_ALLOC = 0
问题:https ://github.com/sonata-project/SonataMediaBundle/issues/866
php - 如何在 symfony 中覆盖奏鸣曲媒体包的默认上传路径?
我有以下问题,我正在使用 Sonata Media 包进行媒体上传的 Symfony 2 应用程序中工作,我在 Bluehost 中托管应用程序,我的问题是,如何覆盖奏鸣曲媒体中媒体上传的默认路径捆绑?,因为我需要上传到“public_html”目录而不是默认的网络目录?谢谢和亲切的问候/
php - SonataMediaBundle 的公共和私人媒体上传到不同的文件夹(网络和私人)
我正在使用 SonataMediaBundle,直到现在我一直在web
Symfony 的文件夹中公开上传文件。这是我的配置文件的一部分:
而在我的parameters.yml
我有 cdn_server_path: /uploads/media/
。
这将在web/uploads/media/contextname/0001/01/***
.
在公共文件夹中,这些文件对每个人都是可见的。我知道我可以在 中的某处更改此文件夹app/Resources/
,但这将使我的所有文件都成为私有文件,这是我不想要的。私人的,我的意思是他们应该以某种方式由控制器服务。
如何区分一些文件是公开的,而另一些文件是私人的?有没有办法让某个上下文上传文件与另一个不同?还是有什么其他方式?
此外,当将文件上传到 app/Resources 文件夹时,它们无法预览,因为它们的 url 变为http://website.com/app/Resources/media/profile_pics/0001/01/85e05ab9685b1745af4e64ff98ef91eed6e4ccdf.jpeg不公开,因为它是不在 web 文件夹中,这是 Symfony 唯一拥有的公共文件。如何才能做到这一点?
编辑:我已经设法完成了上传部分(检查下面的答案),但检索部分有点麻烦。我仍在寻找一种方法来做到这一点。
symfony - SonataMediaBundle - S3 AWS:'配置的存储桶“我的存储桶”不存在
我正在尝试在我的 Sonata-Project 上配置 AWS s3 文件系统,但我总是收到以下错误:
配置的存储桶“my-bucket”不存在。
我的sonata_media.yml
:
我在 parameters.yml 中添加了以下参数:
目前我使用这个库:
(在最新版本中,s3_region 参数出现错误。)
桶策略:
我想我不必说桶就在那里。
有谁知道,问题是什么?