Здравствуйте.
Помогите разобраться, перевели сайт на PHP8.2, ядро конечно же обновлено.
Заметили, что перестал работать обмен (не приходят товары с 1С). На стороне 1С ошибка, что не смогли прочитать import.xml
Начал разбираться.
1. Если отключить в настройках обмена сжатие, то всё работает.
2. Выставил сохранение файлов обмена на стороне битрикса:
define("BX_CATALOG_IMPORT_1C_PRESERVE", true);
файлы приходят, в консоли я их вижу, права на них верные, консольным unzip прекрасно распаковываются.
стал смотреть, как битрикс с ними работает
сделал свой код на основе из ядра и запускаю его в админке:
1.
CModule::includeModule('iblock');
$fileName = $_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog1/v8_3956_ea6.zip';
$result = CIBlockXMLFile::safeUnZip($fileName, 0);
echo var_dump($result);
говорит, что все хорошо, но распакованных файлов нет
2.
CModule::includeModule('iblock');
$fileName = $_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog1/v8_3956_ea6.zip';
$dirName = mb_substr($fileName, 0, mb_strrpos($fileName, '/') + 1);
$archiver = CBXArchive::GetArchive($fileName, 'ZIP');
$archiveProperties = $archiver->GetProperties();
$entries = (int)$archiveProperties['nb'];
for ($index = 0; $index < $entries; $index++)
{
$archiver->SetOptions([
'RULE' => [
'by_index' => [
[
'start' => $index,
'end' => $index,
]
]
]
]);
$stepResult = $archiver->Unpack($dirName);
if ($stepResult === true)
{
echo "true: {$index}";
}
if ($stepResult === false)
{
echo "error: {$index}";
}
}
echo "finaly: {$index}";
echo $archiver->GetErrors();
выводит, что распаковал все 138 частей, ошибок нет, однако в каталоге опять таки нет распакованных файлов.
Помогите разобраться.
Помогите разобраться, перевели сайт на PHP8.2, ядро конечно же обновлено.
Заметили, что перестал работать обмен (не приходят товары с 1С). На стороне 1С ошибка, что не смогли прочитать import.xml
Начал разбираться.
1. Если отключить в настройках обмена сжатие, то всё работает.
2. Выставил сохранение файлов обмена на стороне битрикса:
define("BX_CATALOG_IMPORT_1C_PRESERVE", true);
файлы приходят, в консоли я их вижу, права на них верные, консольным unzip прекрасно распаковываются.
стал смотреть, как битрикс с ними работает
сделал свой код на основе из ядра и запускаю его в админке:
1.
CModule::includeModule('iblock');
$fileName = $_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog1/v8_3956_ea6.zip';
$result = CIBlockXMLFile::safeUnZip($fileName, 0);
echo var_dump($result);
говорит, что все хорошо, но распакованных файлов нет
2.
CModule::includeModule('iblock');
$fileName = $_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog1/v8_3956_ea6.zip';
$dirName = mb_substr($fileName, 0, mb_strrpos($fileName, '/') + 1);
$archiver = CBXArchive::GetArchive($fileName, 'ZIP');
$archiveProperties = $archiver->GetProperties();
$entries = (int)$archiveProperties['nb'];
for ($index = 0; $index < $entries; $index++)
{
$archiver->SetOptions([
'RULE' => [
'by_index' => [
[
'start' => $index,
'end' => $index,
]
]
]
]);
$stepResult = $archiver->Unpack($dirName);
if ($stepResult === true)
{
echo "true: {$index}";
}
if ($stepResult === false)
{
echo "error: {$index}";
}
}
echo "finaly: {$index}";
echo $archiver->GetErrors();
выводит, что распаковал все 138 частей, ошибок нет, однако в каталоге опять таки нет распакованных файлов.
Помогите разобраться.