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.