php接收二进制流(图片)生成图片文件文件

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');
?>

报错: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');
?>

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111982.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tp框架中assign同时传递多个值,输出多个模板变量

    tp框架中assign同时传递多个值,输出多个模板变量

    2021年10月9日
    50
  • 刚刚弄的51cto 谢谢我的兄弟

    刚刚弄的51cto 谢谢我的兄弟

    2021年8月11日
    61
  • postman调用rpc接口_postman测试本地接口

    postman调用rpc接口_postman测试本地接口一般使用的接口类型都是http协议传输,第一次遇到RPC类型,使用postman进行测试。请求方式get或者post并不影响,URL是在域名后面加了/rpc,例如,https://www.baidu.com/rpcheaders:写了常规请求时的内容(头为空也不影响)body选择raw,{“jsonrpc”:“2.0”,“method”:“eth_getBalance”,“para…

    2022年10月10日
    2
  • apache 负载均衡 超时设置_apache负载均衡配置

    apache 负载均衡 超时设置_apache负载均衡配置最近因为新疆移动项目的要求,必须要用负载均衡来实现HTTP请求,没办法,我这个人一般是有压力的环境下才会好好学习,所以只有老实的自己来边学边写了。   其实,我们在平时经常听说集群这个名词,但是真正知道的又有几个呢,恩,好了,不讲废话了,我就先给大家扫盲吧,当然,我讲的不一定是对的,我就把我自己知道的讲出来,集群目前分3类吧,科学集群、高可用性集群、负载均衡集群。    科学集群(ScientificClustering,简称SC):使用特殊的软硬件技术将大量的计算能力有限的机器连接成计算能力巨大

    2025年9月4日
    7
  • android service的作用_android threadlocal

    android service的作用_android threadlocalAndroid-Service和Thread

    2022年4月20日
    47
  • idea远程debug调试_eclipse远程debug

    idea远程debug调试_eclipse远程debug服务器端程序配置第一种方式比如我这次是需要远程debugpresto程序,然后在presto目录下的etc/jvm.config中添加了如下一行命令-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5009扩展:transport:调试时的通讯数据传输方式。address:地址端口server:是否监听调试请求。suspend:是否等待启动,即是否在debuger调试链接建立后才启动debugJVM。第二种

    2025年10月21日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号