本文实例讲述了php发送与接收流文件的方法。分享给大家供大家参考。具体如下:
sendStreamFile.php 把文件以流的形式发送
receiveStreamFile.php 接收流文件并保存到本地
sendStreamFile.php文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?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/receiveStreamFile.php' , 'send.txt' ); var_dump( $ret ); ?> |
receiveStreamFile.php文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
]<?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 )); ?> |
下面是其它网友的补充
PHP读取流文件
1
2
3
4
5
6
7
8
9
10
11
|
$filepath = 'http://www.vip.com/down' ; $fp = fopen ( $filepath , "r" ); Header( "Content-type: application/octet-stream" ); Header( "Accept-Ranges: bytes" ); Header( "Content-Disposition: attachment; filename=xxx.pdf" ); $buffer = 1024; while (! feof ( $fp )) { $file_con = fread ( $fp , $buffer ); echo $file_con ; } fclose( $fp ); |
希望本文所述对大家的php程序设计有所帮助。