My requirement is as follows (please note both the things I have to do programmatically) 1. To upload a profile photo for an user 2. And then make the image available for user/other users to view on that user's profile page.

For the first requirement, my approach was to create an Attachment with parent-Id as the User's ID for whom a picture attachment have been created.

But unfortunately, User record can't have an attachment. However, User have contact object reference and contact can have an attachment. (this I did to achieve feature one). Limitation for this approach is, I have to create a Contact and Account object.

Now to show the image on user's profile, I created a custom formula field (in User object) which uses the uploaded attachment's id [can be reached through contact reference present in User object] to show the image on User's profile.

This question is to just validate the approach or if there is any better approach for Photo upload for user.

  • 1
    Are you trying to update their profile photo? Are these actually community users? – Adrian Larson May 28 '16 at 14:24
  • If User, look at the Object Reference for User. there are several fields that need updated including FullPhotoUrl and SmallPhotoUrl. It doesn't become an attachment. – crmprogdev May 28 '16 at 15:05
  • @AdrianLarson Users would be standard users and these users would be created first and then photo for them would be uploaded using Apex rest api. – sakura May 28 '16 at 15:42
  • @crmprogdev I checked these fields (FullPhotoUrl and SmallPhotoUrl) but am not sure how to use these fields programmatically (using Apex to upload the photo and use these fields). – sakura May 28 '16 at 15:53
  • Wherever you upload/save these files to, the URL needs to be saved in the FullPhotoUrl field. There's a size limit for display in profiles on an image. If you're resizing images, after resizing &saving to another location, set the SmallPhotoUrl. If the file satisfies the size requirement, set both fields to where you're saving it. – crmprogdev May 28 '16 at 15:58

Your question seems to have an answer here.

You could use the new Connect API.

Specifically the ChatterUsers Class with the setPhoto method.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.