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

举报
lxw1844912514 发表于 2022/03/27 02:14:41 2022/03/27
【摘要】 <?php /** 二进制流生成文件 * $_POST 无法解释二进制流,需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input * $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用于 enctype=multipart...

  
  1. <?php
  2. /** 二进制流生成文件
  3. * $_POST 无法解释二进制流,需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input
  4. * $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用于 enctype=multipart/form-data
  5. * @param String $file 要生成的文件路径
  6. * @return boolean
  7. */
  8. function binary_to_file($file){
  9. $content = $GLOBALS['HTTP_RAW_POST_DATA']; // 需要php.ini设置
  10. if(empty($content)){
  11. $content = file_get_contents('php://input'); // 不需要php.ini设置,内存压力小
  12. }
  13. $ret = file_put_contents($file, $content, true);
  14. return $ret;
  15. }
  16. // demo
  17. binary_to_file('photo/test.png');
  18. ?>

报错:Undefined index: HTTP_RAW_POST_DATA的解决办法

替换为


  
  1. <?php
  2. /** 二进制流生成文件
  3. * $_POST 无法解释二进制流,需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input
  4. * $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用于 enctype=multipart/form-data
  5. * @param String $file 要生成的文件路径
  6. * @return boolean
  7. */
  8. function binary_to_file($file){
  9. $contentisset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : file_get_contents("php://input");
  10. //php7 可以写为 $content=$GLOBALS['HTTP_RAW_POST_DATA']??file_get_contents('php://input');
  11. $ret = file_put_contents($file, $content, true);
  12. return $ret;
  13. }
  14. // demo
  15. binary_to_file('photo/test.png');
  16. ?>

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/103603882

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。