2012-10-10 41 views
5

Uso VichUploaderBundle para cargar mis archivos multimedia y deseo usar AvalancheImagineBundle para crear pulgares en mis plantillas. ¿Cómo se debe hacer?VichUploaderBundle y AvalancheImagineBundle

tengo unas pocas cosas en este momento:

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

Pero la salida es:

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

esta es mi 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 } 

Cualquier ayuda o pista?

Respuesta

2

Si el problema que está teniendo es que no se muestra ninguna imagen, entonces tuve el mismo problema.

Para resolverlo me aseguró que dentro de mi config.yml, los source_root y web_root opciones de avalanche_imagine se establecieron para %kernel.root_dir%/../web (o su raíz web). Aquí está el fragmento relevante de mi 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

No hay nada de malo en eso. Imagine que el paquete en producción genera una miniatura la primera vez que se llama y la almacena en la carpeta web/multimedia. En la segunda llamada, solo lee de la web/multimedia. Tiene algunas ventajas para modificar los tamaños de las tomas a voluntad. Si le preocupa el rendimiento, debe iniciar un trabajo para generar una miniatura después de que termine la carga, , aunque lo usé así y nunca me quejé.

+0

pero la salida no es correcta: Froga ikerib

+0

Si está en modo de desarrollo, agregará app_dev.php. La primera llamada genera imagen, la segunda llamada y el resto se redirecciona al archivo generado. – Michal

0

En mi caso, he optado por utilizar LiipImagineBundle que es un tenedor de la AvalancheImagineBundle .

Yo configuré este paquete para usar gaufrette como cargador de datos, que es fácil de usar como usted describe, sin importar mucho las rutas.