para - Subir archivo con php a otro servidor php
subir y mostrar archivos en php (3)
No pregunto acerca de cómo cargar un archivo desde un navegador a un script php, ya hay muchos tutoriales al respecto. Estoy preguntando acerca de esto:
Tengo un script php que ha aceptado un archivo del usuario y el archivo se encuentra actualmente en el disco duro del servidor 1. Quiero cargar el archivo del servidor 1 a un script php en el servidor 2, usando el protocolo de correo Http regular. , por lo que el script php en el servidor 2 se puede escribir como un controlador de carga de archivos estándar.
No puedo encontrar ningún tutorial en Internet, porque todos hablan sobre browser-> server1. Los tutoriales sobre la carga de php hablan de ftp, pero no quiero usar ese protocolo.
¿Por favor ayuda?
Necesitas dos scripts.
El primer script que emulará el comportamiento del navegador, tomará un archivo y lo enviará a un script de segundos, que lo manejará como un script de carga de archivos normal.
Supongo que tiene que usar "http_post_fields" para el primer script, parece manejar archivos. http://us2.php.net/manual/en/function.http-post-fields.php
Buena suerte.
Podría usar SOAP para enviar el archivo de un servidor al otro.
Servidor receptor:
<?php
$server = new Soap_Server( null, array(''uri''=>''somerui'') );
$server->addFunction( ''receiveFile'' );
function receiveFile( $file ) {
file_put_contents( ''somepath'', base64_decode( $file ) );
}
?>
Servidor de envío:
<?php
$client = new Soap_Client( null, array(''uri''=>''somerui'') );
$client->receiveFile( base64_encode( file_get_contents( ''somepath'' ) );
?>
Puedes usar CURL para esto. Algo como esto debería hacerlo.
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(''file'' => ''@/path/to/file.txt''));
curl_setopt($ch, CURLOPT_URL, ''http://server2/upload.php'');
curl_exec($ch);
curl_close($ch);
Luego puede manejar la parte server2 como una carga de archivos regular. Consulte curl_setopt()
para obtener más información sobre esas opciones.