Update media-url.php

This commit is contained in:
lizandrogd
2026-01-21 12:58:44 -05:00
parent d4345cb150
commit e2624e7e32
+22
View File
@@ -31,7 +31,20 @@ if (!$mediaId && !$providedUrl) {
$mediaUrl = null;
if ($providedUrl) {
// Reconstruir la URL si fue pasada sin codificar y otros parámetros quedaron como GET separados
$mediaUrl = $providedUrl;
$ignoredKeys = ['url','download','id','local'];
$extraParts = [];
foreach ($_GET as $k => $v) {
if (in_array($k, $ignoredKeys, true)) continue;
// Reconstruir sólo si el parámetro no está ya presente en la URL
if (strpos($mediaUrl, $k . '=') === false) {
$extraParts[] = $k . ($v !== '' ? '=' . rawurlencode($v) : '');
}
}
if (!empty($extraParts)) {
$mediaUrl .= (strpos($mediaUrl, '?') === false ? '?' : '&') . implode('&', $extraParts);
}
} else {
$token = getConfigFromDB('whatsapp_token', '');
$apiUrl = rtrim(getConfigFromDB('whatsapp_api_url', 'https://graph.facebook.com/v22.0/'), '/');
@@ -148,6 +161,15 @@ if ($download) {
exit;
}
// Si el servidor remoto devolvió un código HTTP de error, devolverlo al cliente
$remoteHttp = isset($info['http_code']) ? (int)$info['http_code'] : 0;
if ($remoteHttp >= 400) {
http_response_code(502);
header('Content-Type: application/json; charset=utf-8');
echo json_encode(['success' => false, 'error' => 'Remote server returned error status', 'http_code' => $remoteHttp, 'url' => $mediaUrl]);
exit;
}
$headerSize = isset($info['header_size']) ? (int)$info['header_size'] : 0;
$headersText = $headerSize ? substr($response, 0, $headerSize) : '';
$body = $headerSize ? substr($response, $headerSize) : $response;