2017-04-12 62 views
0

有沒有簡單的方法來處理用戶配置文件圖像?Customer Image Profile

我試過VichUploaderBundle沒有成功。

+1

顯示您嘗試過的操作(實施)以及您卡住的位置。爲了改善您的問題,請閱讀[我如何問一個好問題?](http://stackoverflow.com/help/how-to-ask)並相應地更新您的問題。 –

+0

當然,我遵循[安裝程序](https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/installation.md)沒有任何問題,我想使用[yml映射](https: //github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/mapping/yaml.md)。這對教義沒有影響:schema:update。 如果有必要我可以附加我的配置 –

+1

是的,添加你的代碼,看看你是如何實現它 –

回答

0

將它們保存在數據庫中具有唯一名稱和存儲名稱的文件夾中。

要上傳圖片,您可以在窗體中使用FileType字段,其文檔爲here。您可以使用將ImageType的表單驗證我記得,這裏是一些代碼,將文件保存在文件夾中,並保存的文件名在數據庫:

$user = new User(); 
    $form = $this->createForm(UserForm::class, $user); 

    $form->handleRequest($request); 

    if ($form->isSubmitted() && $form->isValid()) { 
     $img = $user->getPhoto(); 

     $fileName = md5(uniqid()).'.'.$img->guessExtension(); 
     $user->setPhoto($fileName); 
     // Move the file to the directory where brochures are stored 
     $img->move(
      $this->getParameter('user_image_directory'), 
      $fileName 
     ); 
     $em = $this->getDoctrine()->getManager(); 
     $em->persist($user); 
     $em->flush(); 
    } 

而當你想要顯示的IMG你顯示它首先你用$ user-> getPhoto()讀取文件名並將它發送到你的模板,當我從模板中調用user.getPhoto()時有一些錯誤,也許它只是我:

img src="{{ asset('media/users/') }}{{ filename }}"></div>