Hola, estoy tratando de enviar un archivo XML a un webserver por HTML y php pero no me esta saliendo, al consultar en la respuesta, me aparece el mensaje:
"Bad Request - Invalid Hostname
HTTP Error 400. The request hostname is invalid."
El código que hice para comunicarme es este,
Cita: <html>
<head>
<title>Prueba</title>
</head>
<body>
Código PHP:
<?php
$xml = $_FILES['filetoupload'];
$filepath = $xml['tmp_name'];
$filename = $xml['name'];
echo "<br>Archivo temporal: ".$filename."<br>Guardado en: ".$filepath."<br><br>";
//Iniciamos una sesion cURL
$curl = curl_init();
//Indicamos a donde deseamos enviar nuestro post
curl_setopt($curl, CURLOPT_URL,"http://www.host.com" );
//Indicamos lo que queremos enviar en nuestro post, en este caso un xml
curl_setopt($curl , CURLOPT_POSTFIELDS,$xml);
curl_setopt($curl, CURLOPT_HTTPHEADER,
array('Content-Type: application/x-www-form-urlencoded',
'Content-Length: strlen($xml)',
'Host: http://www.host.com'));
//Añadimos una opción más para poder almacenar la respuesta en una variable
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//Ejecutamos el curl y almacenamos la respuesta en una variable
$respuesta=curl_exec($curl);
print_r($respuesta);
if(curl_errno($curl))
{
print '<br>ERROR: '.curl_error($curl);
}
else
{
//Cerramos nuesta sesión
curl_close($curl);
}
?>
esto es en el archivo upload.php
El archivo se sube en index.php:
<form method="post"
enctype="multipart/form-data"
'action="upload.php"'
>
<input type="file" name="filetoupload">
<input type="submit" value="Envia!">
</form>
Al agregar este código, aparece el siguiente mensaje:
Código PHP:
if(curl_errno($curl))
{
print '<br>ERROR: '.curl_error($curl);
}
else
{
//Cerramos nuesta sesión
curl_close($curl);
}
¿Qué puede estar mal o estar faltándose?
Saludos