Передача файла с одного сервера на другой с помощью PHP
Иногда возникает потребность передать файл с одного сервера на другой. Для этого нужно создать два скрипта на PHP, один на отправляющий сервер другой на принимающий
Иногда возникает потребность передать файл с одного сервера на другой. Для этого нужно создать два скрипта на PHP, один на отправляющий сервер другой на принимающий.
Первый скрипт отправляет файл и после получения ответа что второй сервер принял его, удаляет исходный файл. Второй соответственно принимает файл и сохраняет его в соответственную папку и в конце отправляет ответ первому скрипту.
Первый файл:
<? $post = http_build_query( array( 'path'=> 'test', //параметр определяющий путь на втором сервере 'img' => base64_encode(file_get_contents('file_test.zip')) //где file_test.zip это отпровляемый файл ) ); //опции контекста $options = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $post ) ); //отправляем файл на второй сервер и получаем его ответ $context = stream_context_create($options); $result = file_get_contents('http://test.com/http.php', false, $context); if ($result == '200') { unlink('file_test.zip'); echo "Файл успешно отправлен на второй сервер и удален с первого"; } else { echo "Файл не отправлен!"; } ?>
Второй файл:
<? //это принимающий код на втором сервере if(isset($_POST['img'])) {//это проверка для примера, может быть другая $send = 400; if($im = base64_decode($_POST['img'])) { file_put_contents($_POST['path'].'/img.zip', base64_decode($_POST['img'])); $send = 200; } echo $send; //ответ второго сервера об удачном приеме файла } ?>