2012-10-10 12 views
5

Używam VichUploaderBundle do przesyłania moich plików multimedialnych i chcę użyć AvalancheImagineBundle do tworzenia kciuków w moich szablonach. Jak to zrobić?VichUploaderBundle and AvalancheImagineBundle

mam to teraz:

<td><img src="{{ vich_uploader_asset(entity, 'image') | apply_filter('my_thumb')}}" alt="{{ entity.nombre }}" /></td> 

ale wyjście jest:

<img src="/app_dev.php/media/cache/my_thumb/images/uploads/392158_10150441208223772_580903771_8591661_774015725_n.jpg" alt="Froga"/> 

to moja config.yml:

# Vich Uploader 
vich_uploader: 
    db_driver: orm 
    twig: true 
    gaufrette: false # set to true to enable gaufrette support 
    storage: vich_uploader.storage.file_system 
    mappings: 
     uploads: 
      uri_prefix: /images/uploads 
      upload_destination: %kernel.root_dir%/../web/images/uploads 
      namer: ~ # specify a file namer service id for this entity, null default 
      directory_namer: ~ # specify a directory namer service id for this entity, null default 
      delete_on_remove: true # determines whether to delete file upon removal of entity 
      inject_on_load: true # determines whether to inject a File instance upon load 

avalanche_imagine: 
    source_root: %kernel.root_dir%/../web/images/uploads 
    web_root:  %kernel.root_dir%/../web/images/uploads 
    cache_prefix: media/cache 
    driver:  gd 
    filters: 
     my_thumb: 
      type: thumbnail 
      options: { size: [120, 90], mode: outbound, quality: 100, format: png } 

Każda pomoc lub wskazówka?

Odpowiedz

2

Jeśli masz problem z tym, że nie wyświetla się żaden obraz, to miałem ten sam problem.

W celu rozwiązania tego I zapewnił, że w moim config.yml, że source_root i web_root opcje avalanche_imagine były ustawione na %kernel.root_dir%/../web (lub korzenia internetowej). Oto odnośny fragment z mojego config.yml:

#Uploads 
knp_gaufrette: 
    adapters: 
     article_adapter: 
      local: 
       directory: %kernel.root_dir%/../web/images/articles 
    filesystems: 
     article_image_fs: 
      adapter: article_adapter 
vich_uploader: 
    db_driver: orm 
    gaufrette: true 
    storage: vich_uploader.storage.gaufrette 
    mappings: 
     article_image: 
      uri_prefix: /images/articles 
      upload_destination: article_image_fs 
      namer: vich_uploader.namer_uniqid 

#images 
avalanche_imagine: 
    filters: 
     article_list: 
      type: thumbnail 
      options: { size: [100, 100], mode: outbound } 
    source_root: %kernel.root_dir%/../web 
    web_root:  %kernel.root_dir%/../web 
    cache_prefix: cache 
0

Nic w tym złego. Wyobraź sobie, że pakiet w produkcji generuje miniaturę przy pierwszym wywołaniu i zapisuje ją w folderze internetowym/multimedialnym. Przy drugim wywołaniu czyta się tylko z Internetu/mediów. Ma pewne zalety, aby zmodyfikować rozmiary thumbnail według uznania. Jeśli martwisz się wydajnością, powinieneś zwolnić jakąś pracę, aby wygenerować miniaturę po zakończeniu przesyłania, chociaż użyłem tego w ten sposób i nigdy nie narzekałem.

+0

ale dane wyjściowe nie są prawidłowe: Froga ikerib

+0

Jeśli jesteś w trybie deweloperskim, doda app_dev.php. Pierwsze wywołanie generuje obraz, drugie wywołanie i reszta to przekierowanie 301 do wygenerowanego pliku. – Michal

0

W moim przypadku wybrałem używać LiipImagineBundle która jest widelec z AvalancheImagineBundle .

Skonfigurowałem ten pakiet, aby używać gaufrette jako modułu ładującego dane, niż prostego używania go w trakcie opisywania, bez dbałości o ścieżki.