1Я загружаю фотографию профиля для пользователей сообщества в формате base64 с помощью ConnectApi.UserProfiles.setPhoto Метод. Но я получаю «ConnectApi.ConnectApiException: загруженный вами файл не является допустимым изображением». Эта ошибка, помогите мне решить эту проблему.
Как загрузить фотографию профиля в формате base64 для пользователей сообщества с помощью ConnectApi.UserProfiles.setPhoto
Ответы (2)
Привет, вы можете попробовать следующий метод:
public PageReference upload() {
Blob b;
document.AuthorId = UserInfo.getUserId();
document.FolderId = UserInfo.getUserId(); // put it in running user's folder
try {
document.type = 'jpg';
document.IsPublic = true;
insert document;
// ImageId = '06990000001HnuB';
b = document.Body;
//ConnectApi.ChatterUsers newPhoto = new ConnectApi.ChatterUsers();
} catch (DMLException e) {
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR, 'Error uploading file'));
return null;
} finally {
document.body = null; // clears the viewstate
document = new Document();
}
ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, 'File uploaded successfully : ' + b));
String communityId = null;
String userId = UserInfo.getUserId();
//ID fileId = ImageId;
// Set photo
ConnectApi.Photo photo = ConnectApi.ChatterUsers.setPhoto(communityId, userId, new ConnectApi.BinaryInput(b, 'image/jpg', 'userImage.jpg'));
return null;
}
person
Dhairya Shah
schedule
17.02.2019
Этот пост представляет собой ответ на дамп кода, в котором вы предоставляете только код и не предлагаете никаких дополнительных объяснений того, как он решает проблему. Ваш пост будет улучшен, например, если вы объясните, что такое ключевой функционал.
- person MJ12358; 13.03.2020
Кроме того, код в его текущем состоянии не компилируется. Вы не объявили переменную 'document'.
- person MJ12358; 13.03.2020
Я получал ту же ошибку, подробностей не так много, поэтому я не слишком уверен в вашей проблеме. Я решил проблему, используя приведенный ниже код. Измените по мере необходимости.
public static Boolean updateUserProfilePic(String userProfilePicString, String userId, String fileType){
Boolean updateSuccessful = true;
System.debug('-------------' + userProfilePicString.length());
try{
Blob blobImage = EncodingUtil.base64Decode(userProfilePicString);
ConnectApi.BinaryInput fileUpload = new ConnectApi.BinaryInput(blobImage, 'image/jpg', 'userImage.jpg');
ConnectApi.Photo photoProfile = ConnectApi.UserProfiles.setPhoto(null, userId, fileUpload);
}
catch(Exception exc){
updateSuccessful = false;
}
return updateSuccessful;
}
person
user13011442
schedule
05.03.2020