@Obivankinobi

Как загрузить картинку в профиль через update??

Добрый день, столкнулся с проблемой при обновлении пользовательской фотографии .
Собственно предыдущая фотография удаляется, а новая не появляется. Перерыл интернет и ничего не нашел((
Ошибок нет, в конце скрипт выдает true..
$arFile2 = CFile::MakeFileArray($_FILES['file']['tmp_name'][0]);
$userId =  $USER->GetId();
$rsUser = CUser::GetByID($userId);
$arUser = $rsUser->Fetch();
$arFile2['del'] = "Y";           
$arFile2['old_file'] = $arUser["PERSONAL_PHOTO"];
$arFile2["MODULE_ID"] = "main";

$fid = CFile::SaveFile($arFile2, "main");

$fields = Array( "PERSONAL_PHOTO" => $fid );

$user = new CUser;
$res = $user->Update($userId, $fields);
$strError .= $user->LAST_ERROR;
  • Вопрос задан
  • 2077 просмотров
Решения вопроса 1
Rema1ns
@Rema1ns
и так сойдет
$arr_file = array(
	"name" =>$_FILES['file']['name'],
	"size" =>$_FILES['file']['size'],
	"tmp_name" =>$_FILES['file']['tmp_name'],
	"type" => "",
	"old_file" => "",
	"del" => "Y",
	"MODULE_ID" => ""
);

$fid = CFile::SaveFile($arr_file, "patch");


А CFile::MakeFileArray вам не зачем использовать. Эта функция генерит аналог того то у вас в $_FILES

И если вы передаете картинку через FormData() тогда у вас перевернутый массив в $_FILES, его необходимо обработать. Глянуть тут

И еще попробуйте в $fields = Array( "PERSONAL_PHOTO" => $arFile2 );
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Покажите содержимое массива $arFile2 в момент загрузки файла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы