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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021.12goland激活码-激活码分享「建议收藏」

    (2021.12goland激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    88
  • python2 nonlocal_python非零返回

    python2 nonlocal_python非零返回nonlocal可以将一个变量声明为非本地变量,在python的lru_cache看到了使用defdecorator(func):a=1defwrapper(*args,**kwargs):nonlocalaa+=1returnfunc()returnwrapper实例中,当a变量是不可变类型时,因为包装函数引用了a,装饰器执行结束,在包装函数里改变a的值,需要…

    2025年9月19日
    4
  • 宝塔卸载命令_linux如何永久停用mysql

    宝塔卸载命令_linux如何永久停用mysql宝塔面板(linux)卸载方法及卸载后文件删除我们说过很多宝塔面板的教程,貌似没说过如何卸载宝塔面板,假如我们装置一款面板,都会请求要洁净纯洁的系统,就是说,假如你装置过环境可能会招致装置不胜利。宝塔面板能够装置,当然也能够卸载,官方也给出了卸载脚本,今天把这些办法罗列下写在这里。一:脚本卸载你需要先在面板中将通过面板安装的所有软件卸载,如nginx、mysql、php等等,然后,进入SSH…

    2025年9月18日
    5
  • linux下杀死全部进程,linux下批量杀死进程[通俗易懂]

    linux下杀死全部进程,linux下批量杀死进程[通俗易懂]psaux|greppython|grep-vgrep|cut-c9-15|xargskill-15管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的几个命令:“psaux”是linux里查看所有进程的命令。这时检索出的进程将作为下一条命令“greppython”的输入。“greppython”的输出结果是,所有含有关键…

    2022年9月21日
    2
  • FileStream文件流类「建议收藏」

    FileStream文件流类「建议收藏」主要讲解以下几个方面:1,FileStream文件流类,2,FileStream文件流类的创建,3,FileMode和FileAccess,FileShare方法基本介绍及注意事项用File类提供的方法在创建或打开文件时,总是会产生一个FileStream对象。类FileStream是个什么样的类?通过它的对象,怎样完成对文件的操作呢?1.FileStream文件流类简介F

    2022年7月21日
    18
  • JS对象转数组_js怎么把数组转成对象

    JS对象转数组_js怎么把数组转成对象arrFun(){letmeilihao={lufei:’船长’,suolong:’副船长’,namei:’航海士’,wusuopu:’狙击手’}letarr=Object.values(meilihao)letarr2=Object.keys(meilihao)console.log(arr,arr2)}打印结果:…

    2022年9月13日
    2

发表回复

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

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