I’m using Magento 1.11.2.0 version and I want to add the option for the customers to upload their image on My account page.
I’ve added a new customer attribute of image file type in admin, and this works pretty fine. But it has only Maximum Image Width, Maximum Image Height options for the image. I would like to add two other inputs so I can specify the width and height for resizing the image when they upload their avatar.
Is there a way to do that? I’m also curios what module/class is used for the upload image attribute on customers.
There’s a few steps to the process. Firstly you need to create an attribute and add it to the default groups and attribute set. Here’s some code which can be added to a setup script to do so:
The key thing there is to set the
inputtofile. This causes the system to display a file uploader on the back end, and look for an uploaded file when processing the form. Thetypeisvarchar, because a varchar attribute is used to store the file name.Once the attribute has been created you’ll need to add an input element to the
persistent/customer/form/register.phtmltemplate. Some sample code to do this is as follows:The main thing to note here also is that the id and name of the field should be the same as your attribute’s code. Also, don’t forget to add
enctype="multipart/form-data"to the<form>tag.This will allow the user to upload an Avatar image when they register. Subsequently when the image is displayed you’ll want to resize it to suitable dimensions for your site. The code Magento image helpers are designed to work with Product images, but this blog post will show you how to create helper functions which can resize an image, and cache the resized file. I’ve used these instructions before to resize a category image and they work well.