2017-10-12 16 views
0

Avec un service d'uploader je réussis à passer des fichiers dans le bon répertoire /var/www/html/test/tmp, mais mes images ne sont pas affichées correctement. Dans brindille j'appelle l'image avec:chemin d'image symfony ne fonctionne que sans port

<img src="{{asset('test/tmp/'~img)}}" alt="user image"> 

Le chemin est créé correctement ...

serveur_ip: port/test/tmp/imgfile.jpg

mais seulement la le texte par défaut est affiché quand j'essaye de charger ma page et la chose étrange est, si j'ouvre le chemin dans un onglet externe et enlève le port l'image correcte est montrée. Est-ce que quelqu'un connaît ce problème?

Mon contrôleur ressemble à ceci:

<?php 

namespace AppBundle\Controller; 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Symfony\Component\HttpFoundation\Request; 
use AppBundle\Entity\Users; 
use AppBundle\Service\FileUploader; 
use Symfony\Component\HttpFoundation\File\UploadedFile; 
use Symfony\Component\HttpFoundation\File\File; 
use Symfony\Component\Form\Extension\Core\Type\TextType; 
use Symfony\Component\Form\Extension\Core\Type\SubmitType; 
use Symfony\Component\Form\Extension\Core\Type\FileType; 


class DefaultController extends Controller 
{ 
/** 
    * @Route("/bearbeiten/{id}", name="edit") 
    */ 
    public function editAction($id, Request $request, FileUploader $fileUploader){ 
     //Daten aus der Datenbank mit $id 
      $listen = $this->getDoctrine() 
       ->getRepository('AppBundle:Users') 
       ->find($id); 
      $img = $listen->getBild(); 

     //Formular wird erstellt 
     $form = $this->createFormBuilder($listen) 
       ->add('vorname', TextType::class, array('attr'=>array('class'=>'form-control', 'style'=>'margin-bottom:0.5cm; width:50%;'))) 
       ->add('nachname', TextType::class, array('attr'=>array('class'=>'form-control', 'style'=>'margin-bottom:0.5cm; width:50%;'))) 
       ->add('strasse', TextType::class, array('attr'=>array('class'=>'form-control', 'style'=>'margin-bottom:0.5cm; width:50%;'))) 
       ->add('ort', TextType::class, array('attr'=>array('class'=>'form-control', 'style'=>'margin-bottom:0.5cm; width:50%;'))) 
       ->add('plz', TextType::class, array('attr'=>array('class'=>'form-control', 'style'=>'margin-bottom:0.5cm; width:50%;'))) 
       ->add('beschreibung', TextType::class, array('attr'=>array('class'=>'form-control', 'style'=>'margin-bottom:0.5cm; width:50%;'))) 
       ->add('bild', FileType::class, array('required'=>false, 'label'=>'Bild (JPEG-Datei)', 'data_class'=>null)) 
       ->add('save', SubmitType::class, array('label'=>'Speichern', 'attr'=>array('class'=>'btn btn-primary'))) 
       ->add('home', SubmitType::class, array('label'=>'Zurück', 'attr'=>array('class'=>'btn btn-default'))) 
       ->getForm(); 

     $form->handleRequest($request); 
     //Falls die Form valid ist.... 
     if($form->isSubmitted() && $form->get('save')->isClicked()){ 
      //Doctrine aktivieren 
      $em=$this->getDoctrine()->getManager(); 
      $user = $em->getRepository(Users::class)->find($id); 
      $file = $form['bild']->getData(); 
      $filename = $fileUploader->upload($file); 
      $user->setBild($filename); 
      $em->flush(); 
      return $this->redirectToRoute('homepage'); 
     } 
     if ($form->get('home')->isClicked()){ 
       return $this->redirectToRoute('homepage'); 
      } 
     return $this->render('main/edit.html.twig', array('listen'=>$listen, 'form'=>$form->createView(), 'img'=>$img)); 
    } 
} 

Merci d'avance pour toute aide :)

Répondre

0

Vous pouvez essayer avec des actifs de configuration:

config.yml

# app/config/config.yml 
framework: 
# ... 
    assets: 
     packages: 
      uploaded_files: 
       base_urls: 'http://ip_server:port/test/tmp/' 

et utiliser dans la brindille

<img src="{{ asset(img, 'uploaded_files') }}"> 

doc: https://symfony.com/doc/current/reference/configuration/framework.html#packages

+0

oh mon dieu merci ^^ Je viens d'avoir ajouter les base_urls et de supprimer le port et il fonctionne maintenant enfin :) vous avez enregistré mon jour: 'actifs paquets: Uploaded_files : base_urls: 'http: // server_ip/test/web/images /' ' – origins523