Update media-url.php
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user