Вот сколько помню подобные темы, всегда задаюсь вопросом, откуда берутся все эти примеры, в которых перед загрузкой файлов зачем-то сначала делается SaveFile()?
В документации же показан [URL=http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/add.php]пример[/URL] с локальной картинкой:
[CODE]...
"DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
...[/CODE]
не сложно же посмотреть и на назначение самой [URL=http://dev.1c-bitrix.ru/api_help/main/reference/cfile/makefilearray.php]CFile::MakeFileArray()[/URL]:
[QUOTE]Функция формирует массив описывающий файл. Структура массива аналогична структуре массива $_FILES[имя] (или $HTTP_POST_FILES[имя]). [/QUOTE]
Т.е. поле DETAIL_PICTURE принимает структуру $_FILES без дополнительных манипуляций.
Попробуйте убрать это:
[S]$arIMAGE = $_FILES["IMAGE_ID"];
$arIMAGE["MODULE_ID"] = "iblock";
$fid = CFile::SaveFile($arIMAGE, "iblock"); [/S]
и использовать просто $_FILES["IMAGE_ID"]:
...
"DETAIL_PICTURE" => $_FILES["IMAGE_ID"]
...