SonataMediaBundle:找不到文件/图像

Bla*_*sad 6 symfony sonata-media-bundle

我正在使用SonataMediaBundle和SonataAdminBundle以及Symfony 2.3.

当我尝试通过Sonata Admin界面上传图像时:

  1. 点击"添加新"(app_dev.php/admin/sonata/media/media/create)
  2. 点击"图片"(app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.image&context=default)
  3. 浏览image.jpg文件并单击"创建"
  4. 这导致我进入编辑页面,我可以看到: Item "image.jpg" has been successfully created.

事实上:

  • 在文件夹中web\uploads\media\default\0001\01我有我的图像文件和3个拇指
  • media__mediaDB表中我有相应的行
  • 当我浏览web/uploads/media/default/0001/01/Firefox时,我可以看到我的图像
  • 相应的行显示在媒体列表中(在管理面板中)

但是:

  • 图像不会显示在媒体列表中(有一个正方形而不是拇指),也不会出现在图像编辑页面中(app_dev.php/admin/sonata/media/media/3/edit?provider=sonata.media.provider.image&context=default)

对于文件,情况更糟:

  1. 点击"添加新"(app_dev.php/admin/sonata/media/media/create)
  2. 点击"图片"(app_dev.php/admin/sonata/media/media/create?provider=sonata.media.provider.file&context=default)
  3. 浏览document.zip文件并单击"创建"

这会产生错误500 : The file "" does not exist. 并且DB中没有创建新行.


一块解决方案

对于图像问题,我注意到奏鸣曲管理员看的路径不是很好的:我看着它: http://myserver/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

代替 http://myserver/myproject/web/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

显然,这是由于config.yml的这一部分(如SonataMedia文档中所定义):

sonata_media
    cdn:
        server:
            path: /uploads/media
Run Code Online (Sandbox Code Playgroud)

我改为:

sonata_media
    cdn:
        server:
            path: /myproject/web/uploads/media
Run Code Online (Sandbox Code Playgroud)

它有效.但我不认为在那里硬编码是个好主意.我想有一个很好的理由为什么它在Sonata Doc中以这种方式编写,不是吗?

我的修改是否正确?如果没有,我该怎么办?

无论如何,它无法解决我的文件上传问题!关于这一点有什么想法吗?

Jan*_*mek 3

文件“”不存在

正如此处所解释的,这是由于 php.ini 中允许的上传文件大小限制不足造成的(增加upload_max_filesizepost_max_size)。

然后您可能会偶然发现另一个错误,指出不允许 zip 文件类型,因此将其添加到您的 config.yml 中:

sonata_media:   
    providers:
        file:
            allowed_extensions: ['zip']
Run Code Online (Sandbox Code Playgroud)