Hello Community,
I am trying to save customer attribute which is Image Type.
But, I can able to save Customer Object but it can't able to render image at Admin Customer View.
Image is also store is given Directory .
Below is my observer code, I have used event customer_register_success.
Vendor/Module/Observer/CustomerRegisterSuccess.php
<?php namespace Inchoo\Helloworld\Observer; use Magento\Framework\Event\ObserverInterface; use Magento\Framework\Event\Observer; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Customer\Api\CustomerRepositoryInterface; class CustomerRegisterSuccess implements ObserverInterface { /** @var CustomerRepositoryInterface */ protected $customerRepository; protected $adapterFactory; protected $uploaderFactory; protected $filesystem; protected $_request; /** * @param CustomerRepositoryInterface $customerRepository */ public function __construct( CustomerRepositoryInterface $customerRepository, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\Filesystem $filesystem, \Magento\Framework\Image\AdapterFactory $adapterFactory, \Magento\MediaStorage\Model\File\UploaderFactory $uploaderFactory ) { $this->customerRepository = $customerRepository; $this->_request = $request; $this->filesystem = $filesystem; $this->adapterFactory = $adapterFactory; $this->uploaderFactory = $uploaderFactory; } /** * Manages redirect */ public function execute(Observer $observer) { $accountController = $observer->getAccountController(); $customer = $observer->getCustomer(); $request = $accountController->getRequest(); /* Zero Start */ $uploaderFactory = $this->uploaderFactory->create(['fileId' => 'profileimage']); $uploaderFactory->setAllowedExtensions(['jpg', 'jpeg', 'gif', 'png']); $imageAdapter = $this->adapterFactory->create(); $uploaderFactory->setAllowRenameFiles(true); $uploaderFactory->setFilesDispersion(true); $mediaDirectory = $this->filesystem->getDirectoryRead(DirectoryList::MEDIA); $destinationPath = $mediaDirectory->getAbsolutePath('Customer_Image'); $result = $uploaderFactory->save($destinationPath); /* Zero End */ // print_r($result); $customerAvatar = $result['file']; $customer->setCustomAttribute('customer_avatar', $customerAvatar); $this->customerRepository->save($customer); } }
Any help would be appreciated.
Can You provide more information?
Some errors appear or simply You don't get that image?