es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

php curl_exec() Error de conexión rechazada al recuperar una imagen remota.

Quiero recuperar una imagen alojada de forma remota con PHP. La imagen existe, puedo acceder a ella desde mi navegador. Sin embargo, el resultado de curl_exec() está vacío y curl_error() dice:

Error al conectar con img107.xooimage.com en el puerto 80: La conexión fue rechazada

Aquí está mi código:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'http://img107.xooimage.com/files/5/0/b/ss-2014-06-15-at-12.58.47--46324f5.png');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$image = curl_exec($ch);

if (empty($image)) {
    echo("¡Imposible recuperar el archivo!<br>
          Error: " . curl_error($ch) . "<br>");
}

Si puedo abrir la imagen desde mi navegador, ¿por qué la conexión es rechazada cuando uso curl?

Nota: funciona con imágenes de mi propio dominio, pero no con imágenes externas como la del ejemplo.

EDIT: En realidad, parece que no es un problema de PHP, ya que ni siquiera pude hacer un curl o un ping desde el servidor de mi sitio web:

curl http://img107.xooimage.com/files/5/0/b/ss-2014-06-15-at-12.58.47--46324f5.png > image.png
Conexión rechazada

ping http://img107.xooimage.com
ping: host desconocido http://img107.xooimage.com

ping http://www.google.com
ping: host desconocido http://www.google.com

Quizás mi proveedor de alojamiento aplicó algunas limitaciones o cortafuegos.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en php, imágenes, curl y connection-refused, parece que el problema no está en el código PHP en sí. El mensaje de error “Failed to connect to img107.xooimage.com port 80: Connection refused” sugiere que el servidor que aloja la imagen está rechazando las conexiones. Esto se confirma por el hecho de que intentar realizar un curl o un ping desde el servidor de alojamiento del sitio web devuelve errores similares de “Connection Refused”.

    Es posible que el proveedor de alojamiento haya aplicado algunas limitaciones o cortafuegos que impiden las conexiones a imágenes externas. Sería conveniente comunicarse con el proveedor de alojamiento para ver si existen restricciones que están causando este problema.

    Mientras tanto, si obtener imágenes externas es una función necesaria para el sitio web, puede valer la pena explorar soluciones alternativas, como alojar las imágenes localmente en el servidor web o utilizar un proveedor de alojamiento diferente que no tenga estas restricciones.

Comments are closed.