Cuando el navegador carga un archivo en el servidor, envía una solicitud HTTP POST, que contiene el contenido del archivo.
Tendrás que replicar eso.
Con PHP, el más simple (o, al menos, más utilizado) solución es, probablemente, para trabajar con curl
.
Si se echa un vistazo a la lista de opciones que se pueden ajustar curl_setopt
, verá la siguiente: CURLOPT_POSTFIELDS
(citando):
Los datos completos para publicar en un HTTP Operación "POST" .
Para publicar un archivo, anteponga un nombre de archivo con @ y use la ruta completa .
Esto se puede pasa como una cadena urlencoded como 'párrafo1 = val1 val2 = párrafo2 & & ...' o como una matriz con el nombre del campo como datos clave y de campo como valor.
Si el valor es una matriz, el encabezado Content-Type será se establecerá en multipart/form-data.
No se ha probado, pero supongo que algo así debe hacer el truco - o, al menos, ayudarle a empezar:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/your-destination-script.php");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'file' => '@/..../file.jpg',
// you'll have to change the name, here, I suppose
// some other fields ?
));
$result = curl_exec($ch);
curl_close($ch);
Básicamente, usted:
- están usando curl
- tienen que establecer la URL de destino
- indicarte
curl_exec
desee devolver el resultado, y no de salida que
- están utilizando
POST
y no GET
- están publicando algunos datos, incluyendo un archivo - nota del
@
antes de la ruta del archivo.
¡Creo que esto va a funcionar y lo intentaré! Gracias :-) (Oye, tienes el mismo nombre que yo entonces tu respuesta debe ser correcta ^^) – qualle
De nada :-) diviértete! * (Mucha gente con nuestro nombre, veo ^^) * –
+1, no me di cuenta que era tan simple como usar el símbolo '@' con PHP :-) –