I'm not asking about uploading a file from a browser to a php script, there's plenty of tutorials about that already. I'm asking about this:
I have a php script that has accepted a file from the user, and the file is currently on the hard disk of server 1. I want to upload the file from server 1 to a php script on server 2, using the regular Http post protocol, so the php script on server 2 can be written as a standard file-upload handler.
I cannot find any tutorial on the internet, because they all talk about browser->server1. The tutorials about php upload all talk about ftp, but I don't want to use that protocol.
Please help?
You can use CURL for this. Something like this should do it.
$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);
You can then handle the the server2 part as a regular file upload. See curl_setopt()
for more information on those options.
You could use SOAP to send the file from one server to the other.
Receiving server:
<?php $server = new Soap_Server( null, array('uri'=>'somerui') ); $server->addFunction( 'receiveFile' ); function receiveFile( $file ) { file_put_contents( 'somepath', base64_decode( $file ) ); } ?>
Sending server:
<?php $client = new Soap_Client( null, array('uri'=>'somerui') ); $client->receiveFile( base64_encode( file_get_contents( 'somepath' ) ); ?>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With