개발 꿀팁/PHP

php 스트림 파일 전송 및 수신

Jammie 2022. 8. 22. 14:59
반응형

php 스트림 파일 전송 및 수신



sendStreamFile.php 파일을 스트리밍 형식으로 보냅니다.

receiveStreamFile.php 스트림 파일을 받아 로컬로 저장


sendStreamFile.php

<?php
/** php 스트림 파일 보내기
* @param  String  $url  수신 경로
* @param  String  $file 보낼 파일
* @return boolean
*/
function sendStreamFile($url, $file){
 
    if(file_exists($file)){
 
        $opts = array(
            'http' => array(
                'method' => 'POST',
                'header' => 'content-type:application/x-www-form-urlencoded',
                'content' => file_get_contents($file)
            )
        );
 
        $context = stream_context_create($opts);
        $response = file_get_contents($url, false, $context);
        $ret = json_decode($response, true);
        return $ret['success'];
 
    }else{
        return false;
    }
 
}
 
$ret = sendStreamFile('http://localhost/fdipzone/receiveStreamFile.php', 'send.txt');
var_dump($ret);
?>

receiveStreamFile.php

<?php
/** php 스트림 파일 받기
* @param  String  $file 받은 후 저장되는 파일 이름
* @return boolean
*/
function receiveStreamFile($receiveFile){
 
    $streamData = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
 
    if(empty($streamData)){
        $streamData = file_get_contents('php://input');
    }
 
    if($streamData!=''){
        $ret = file_put_contents($receiveFile, $streamData, true);
    }else{
        $ret = false;
    }
 
    return $ret;
 
}
 
$receiveFile = 'receive.txt';
$ret = receiveStreamFile($receiveFile);
echo json_encode(array('success'=>(bool)$ret));
?>

 

반응형