PHP接收二进制流并生成文件
- <?php
- /** 二进制流生成文件
- * $_POST 无法解释二进制流,需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input
- * $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用于 enctype=multipart/form-data
- * @param String $file 要生成的文件路径
- * @return boolean
- */
- function binary_to_file($file){
- $content = $GLOBALS['HTTP_RAW_POST_DATA']; // 需要php.ini设置
- if(empty($content)){
- $content = file_get_contents('php://input'); // 不需要php.ini设置,内存压力小
- }
- $ret = file_put_contents($file, $content, true);
- return $ret;
- }
- // demo
- binary_to_file('photo/test.png');
- ?>