Skip to the content.

Exemple media

Acest exemplu arată partea de verificare și încărcare a imaginilor după publicarea unei oferte.

Flux media în PHP

<?php
$photos = [
    [
        'Location'            => 'https://example.com/photos/living-room.jpg',
        'Content-Description' => 'Living room',
        'Object-ID'           => 'photo-01',
    ],
];

$syncedFileIds = [];

foreach ($photos as $photo) {
    $fileOptions = [
        'AGENTIA'    => 123,
        'ID_LOCAL'   => 67654,
        'FILE_ID'    => md5($photo['Object-ID'] . $photo['Content-Description'] . $photo['Location']),
        'FILE_TITLE' => $photo['Content-Description'],
    ];
    $fileOptionso = arrayToObject($fileOptions);

    $exists = $imopedia->execute('existsFile', $fileOptionso);
    $fileExists = 0;
    if (isset($exists['_success']['0']['photo']['exists'])) {
        $fileExists = $exists['_success']['0']['photo']['exists'];
    }
    if ($fileExists == 1) {
        $syncedFileIds[] = $fileOptions['FILE_ID'];
        continue;
    }

    $fileOptions['FILE_BODY'] = base64_encode(file_get_contents($photo['Location']));
    $fileOptions['FILE_URL'] = $photo['Location'];
    $fileOptions['ORDER'] = count($syncedFileIds) + 1;
    $fileOptionso = arrayToObject($fileOptions);
    $imopedia->execute('addFile', $fileOptionso);
    $syncedFileIds[] = $fileOptions['FILE_ID'];
}

if (!empty($syncedFileIds)) {
    $syncOptions = [
        'AGENTIA'  => 123,
        'ID_LOCAL' => 67654,
        'FILE_IDS' => $syncedFileIds,
    ];
    $imopedia->execute('syncFiles', arrayToObject($syncOptions));
}

FILE_BODY trebuie să conțină Base64 brut, fără prefix de tip data:image/jpeg;base64,. Păstrează același FILE_ID pentru aceeași imagine la retrimiteri, ca existsFile și syncFiles să poată reconcilia corect galeria.

Pentru regulile operațiilor media, vezi Fișiere media.