fix annotated photos
This commit is contained in:
@@ -15,6 +15,40 @@ if (!is_dir($logDir)) {
|
|||||||
|
|
||||||
$uploadDir = realpath(__DIR__ . '/../photostrf') . '/';
|
$uploadDir = realpath(__DIR__ . '/../photostrf') . '/';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resolve a datadb_photos.file_path to an absolute file path on disk.
|
||||||
|
*/
|
||||||
|
function resolvePhotoFullPath(string $filePath, string $uploadDir, string $userareaDir): ?string
|
||||||
|
{
|
||||||
|
$filePath = trim($filePath);
|
||||||
|
if ($filePath === '') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$base = rtrim($uploadDir, '/');
|
||||||
|
$candidates = [];
|
||||||
|
|
||||||
|
// Userarea-relative form: "../photostrf/annotated/x.png" → resolve from __DIR__.
|
||||||
|
if (strncmp($filePath, '../', 3) === 0) {
|
||||||
|
$candidates[] = rtrim($userareaDir, '/') . '/' . $filePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bare filename or "annotated/x.png" subpath - resolve from photostrf/.
|
||||||
|
$candidates[] = $base . '/' . ltrim($filePath, './');
|
||||||
|
|
||||||
|
// Safety net for any odd/legacy value.
|
||||||
|
$candidates[] = $base . '/' . basename($filePath);
|
||||||
|
|
||||||
|
foreach ($candidates as $candidate) {
|
||||||
|
$real = realpath($candidate);
|
||||||
|
if ($real && file_exists($real)) {
|
||||||
|
return $real;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// 🔹 Base URL API
|
// 🔹 Base URL API
|
||||||
$apiBaseUrl = 'https://93.43.5.102/limsapi/api/odata/';
|
$apiBaseUrl = 'https://93.43.5.102/limsapi/api/odata/';
|
||||||
|
|
||||||
@@ -420,11 +454,10 @@ try {
|
|||||||
$logContentPhotos .= "=== Campione {$campioneId} (main) ===\n";
|
$logContentPhotos .= "=== Campione {$campioneId} (main) ===\n";
|
||||||
|
|
||||||
foreach ($photos as $photo) {
|
foreach ($photos as $photo) {
|
||||||
$photoPath = $uploadDir . '/' . ltrim($photo['file_path'], './');
|
$fullPath = resolvePhotoFullPath($photo['file_path'], $uploadDir, __DIR__);
|
||||||
$fullPath = realpath($photoPath);
|
|
||||||
|
|
||||||
if (!$fullPath || !file_exists($fullPath)) {
|
if ($fullPath === null) {
|
||||||
$logContentPhotos .= "SKIP (file not found): {$photoPath}\n";
|
$logContentPhotos .= "SKIP (file not found): file_path='{$photo['file_path']}'\n";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user