2014-02-27 57 views
6

我使用SonataMediaBundle和SonataAdminBundle和Symfony 2.3。SonataMediaBundle:找不到文件/圖像

當我嘗試通過索納塔管理界面上傳圖片:

  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__media數據庫表我都有相應的線
  • 當我瀏覽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。並且在數據庫中不會創建新行。


件的解決方案

對於圖像問題,我注意到,其中奏鳴曲管理員一直在尋找的路徑是不好的一個:我是在尋找:http://myserver/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

而不是http://myserver/myproject/web/uploads/media/default/0001/01/c35f187f1b405f4bfba8b962d83e5bbdccff54f9.jpeg

顯然,這是由於這部分的配置。陽明海運(如SonataMedia文檔中定義):

sonata_media 
    cdn: 
     server: 
      path: /uploads/media 

那我換成:

sonata_media 
    cdn: 
     server: 
      path: /myproject/web/uploads/media 

和它的作品。但我認爲在那裏硬編碼不是一個好主意。我想這是爲什麼它在Sonata Doc中這樣寫的一個很好的理由,不是嗎?

我的修改是否正確?如果不是,我該怎麼辦?

無論如何,它並沒有解決我的文件上傳問題! 關於這一點的任何想法?

+1

我有完全相同的問題。你有沒有找到解決方案? –

+0

是有足夠的可寫入權限的目標目錄爲Apache或Nginx? – ibasaw

回答

3

文件「」不存在

正如所解釋的here,這是通過限制在php.ini允許上傳的文件大小不足而造成的(增加upload_max_filesizepost_max_size)。

那麼你可能會絆倒其他錯誤,指出zip文件類型是不允許的,所以添加到您的config.yml這樣的:

sonata_media: 
    providers: 
     file: 
      allowed_extensions: ['zip'] 
0
sonata_media 
    cdn: 
     server: 
      path: /myproject/web/uploads/media 

這是工作的選擇。 我不認爲有硬編碼這個問題。