Home >Backend Development >PHP Tutorial >How to send and receive streaming files in php

How to send and receive streaming files in php

伊谢尔伦
伊谢尔伦Original
2017-06-27 13:32:093608browse

PHP Send and receive stream files

sendStreamFile.php Send files as streams

receiveStreamFile.php Receive stream files and save them locally

1. sendStreamFile .php

<?php
/** php 发送流文件
* @param  String  $url  接收的路径
* @param  String  $file 要发送的文件
* @return boolean
*/
function sendStreamFile($url, $file){
    if(file_exists($file)){
        $opts = array(
            &#39;http&#39; => array(
                &#39;method&#39; => &#39;POST&#39;,
                &#39;header&#39; => &#39;content-type:application/x-www-form-urlencoded&#39;,
                &#39;content&#39; => file_get_contents($file)
            )
        );
        $context = stream_context_create($opts);
        $response = file_get_contents($url, false, $context);
        $ret = json_decode($response, true);
        return $ret[&#39;success&#39;];
    }else{
        return false;
    }
}
$ret = sendStreamFile(&#39;http://localhost/fdipzone/receiveStreamFile.php&#39;, &#39;send.txt&#39;);
var_dump($ret);
?>

2. receiveStreamFile.php

<?php
/** php 接收流文件
* @param  String  $file 接收后保存的文件名
* @return boolean
*/
function receiveStreamFile($receiveFile){
    $streamData = isset($GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;])? $GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;] : &#39;&#39;;
    if(empty($streamData)){
        $streamData = file_get_contents(&#39;php://input&#39;);
    }
    if($streamData!=&#39;&#39;){
        $ret = file_put_contents($receiveFile, $streamData, true);
    }else{
        $ret = false;
    }
    return $ret;
}
$receiveFile = &#39;receive.txt&#39;;
$ret = receiveStreamFile($receiveFile);
echo json_encode(array(&#39;success&#39;=>(bool)$ret));
?>

The above is the detailed content of How to send and receive streaming files in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn