Foros del Web » Programando para Internet » PHP »

Enviar archivo por POST a una URL

Estas en el tema de Enviar archivo por POST a una URL en el foro de PHP en Foros del Web. Hola a todos. No se si esto es competencia de PHP o de otro lenguaje, en tal caso me lo decís por favor. La cuestión ...
  #1 (permalink)  
Antiguo 27/10/2015, 07:39
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Enviar archivo por POST a una URL

Hola a todos.

No se si esto es competencia de PHP o de otro lenguaje, en tal caso me lo decís por favor.

La cuestión es que llevo atascado con una cosa bastante tiempo y no se como hacerlo.

Se trata de un portal inmobiliario, donde me dan una URL donde para hacer un post, un action del FORM, lo tengo que enviar es un archivo XML o JSON, pero no me dicen nada mas, y es aquí que no se seguir... ¿como envio este archivo a un URL? Hasta donde yo se, al menos el nombre del archivo tendría que ir con un nombre de variable, no?

Espero que alguien me pueda iluminar sobre esto.

Muchas gracias
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #2 (permalink)  
Antiguo 27/10/2015, 07:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar archivo por POST a una URL

Podrías comenzar por leer el manual sobre cURL, ahí hay métodos que también te permiten enviar archivos.

http://php.net/manual/es/class.curlfile.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/10/2015, 09:52
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar archivo por POST a una URL

Gracias por tu respuesta pateketrueke, pero ¿hay alguna otra forma de hacerlo? es que el servidor me arroja el siguiente error:

"Warning: curl_exec() has been disabled for security reasons"

Saludos.
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #4 (permalink)  
Antiguo 27/10/2015, 09:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar archivo por POST a una URL

¿Pues cambiar de hosting tal vez?

Vamos, necesitas acceso a la red sí o sí, si tu hosting no te lo permite ningún código hará magia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/10/2015, 10:20
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar archivo por POST a una URL

Es decir, que si no se hace con cURL, no se puede enviar de otra forma?
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #6 (permalink)  
Antiguo 27/10/2015, 10:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar archivo por POST a una URL

Pues usar cURL es la solución más simple, igual puedes intentarlo con Sockets pero tienes que implementar todo a mano y es complicado.

A decir verdad yo lo que entiendo es que tu hosting es el verdadero problema, si hay restricciones no creo que puedes hacer más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 27/10/2015, 10:35
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar archivo por POST a una URL

Vale, he cambiado a otro hosting que tengo y ahora no me da ningún mensaje, pero es que tampoco me dice nada, la pantalla en blanco, el código que uso es muy simple:

Código PHP:
<?php
$ch 
curl_init();
$file"/overseasSendProperty.json";
$post = array('file' => '@'.$file);

curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_VERBOSEfalse);
curl_setopt($chCURLOPT_URL'https://adfapi.adftest.rightmove.com/v1/property/overseassendpropertydetails ');

curl_setopt($chCURLOPT_BINARYTRANSFER1);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_POSTFIELDS$post);

$r curl_exec($ch);
print_r($r);
?>
Al final hay un print_r, al menos debería retornar algún dato... estoy haciendo algo mal?

Gracias.
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #8 (permalink)  
Antiguo 27/10/2015, 10:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar archivo por POST a una URL

Si sale la pantalla en blanco entonces algo está muy mal.

Primero revisa en los logs de errores por si ocurrió algo más.

Igualmente agrega estas lineas al inicio del script para activar el reporte de errores:
Código PHP:
Ver original
  1. ini_set('display_errors', 1);

Ejecuta tu script de nuevo y veamos que sucede.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 27/10/2015, 11:07
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar archivo por POST a una URL

Pues sigue sin salir nada, pantalla en blanco.

Es script se ejecuta aquí.

http://75proyectoscreativos.com/1/prueba.php

Y el archivo que intento envia es este

http://75proyectoscreativos.com/1/ov...dProperty.json

El servidor me crea un archivo log en la misma carpeta del PHP y en este caso no me lo crea... es raro de coj....
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #10 (permalink)  
Antiguo 27/10/2015, 11:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar archivo por POST a una URL

¿Podrías imprimir algo linea por linea para ir viendo cómo se ejecuta el script?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 27/10/2015, 11:17
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar archivo por POST a una URL

Vale, haciendo esto, todos me devuelve cada linea el valor 1

Código PHP:
echo curl_setopt($chCURLOPT_HEADER0);
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_VERBOSEfalse);
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_URL'https://adfapi.adftest.rightmove.com/v1/property/overseassendpropertydetails ');
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_BINARYTRANSFER1);
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_HTTPHEADER, array('Content-Type: application/json'));
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_POSTtrue);
echo 
"<br>";
echo 
curl_setopt($chCURLOPT_POSTFIELDS$post);
echo 
"<br>"
No se, si es eso lo que me has pedido que haga
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #12 (permalink)  
Antiguo 27/10/2015, 11:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar archivo por POST a una URL

Pues viendo directamente la URL https://adfapi.adftest.rightmove.com...ropertydetails no responde nada.

Edito: quité la opción que construye el $post y respondió lo siguiente.
Cita:
{
"message": "We were unable to process your request because the authentication failed. Please try again and contact the Rightmove ADF team if this problem persists",
"success": false
}
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 27/10/2015, 11:26
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Enviar archivo por POST a una URL

Entonces, debería de funcionar bien, no?

Me queda lo otro de comprobarlo con el cliente, pero lo quiero molestar con esto lo mínimo posible.

Muchas gracias.
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.

Etiquetas: post, url, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:58.