php接收二进制流(图片)生成图片文件文件
【摘要】
<?php /** 二进制流生成文件 * $_POST 无法解释二进制流,需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input * $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用于 enctype=multipart...
-
<?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');
-
?>
报错:Undefined index: HTTP_RAW_POST_DATA的解决办法
替换为
-
<?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= isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : file_get_contents("php://input");
-
//php7 可以写为 $content=$GLOBALS['HTTP_RAW_POST_DATA']??file_get_contents('php://input');
-
$ret = file_put_contents($file, $content, true);
-
return $ret;
-
}
-
-
// demo
-
binary_to_file('photo/test.png');
-
?>
文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/lxw1844912514/article/details/103603882
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)