`

php接收二进制文件转换成图片,php://input $GLOBALS['HTTP_RAW_POST_DATA']

    博客分类:
  • PHP
阅读更多

最近在做Flash在线裁剪图片 生成图片的东西。
通过Flash POST 图片的二进制数据给php,由php生成图片保存。

开始想到用$_POST来接受。后来发现行不通。
查阅了很多资料 明白了所以然,这里做一个笔记:

于PHP默认只识别application/x-www.form-urlencoded标准的数据类型。
因此,对型如text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用$_POST数组来接收就会失败!
故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收。

另外还有一项 php://input 也可以实现此这个功能

php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input和 $HTTP_RAW_POST_DATA 不能用于 enctype="multipart/form-data"。

我在Flash中使用JPGEncoder把BitMapData转成二进制,然后post给php

php页面代码如下:


<?php
$filename="teststream.jpg";//要生成的图片名字
if (!empty($GLOBALS["HTTP_RAW_POST_DATA"]))
{
  $jpg = $GLOBALS["HTTP_RAW_POST_DATA"];//得到post过来的二进制原始数据
  $file = fopen("cache/pic/".$filename,"w");//打开文件准备写入
  fwrite($file,$jpg);//写入
  fclose($file);//关闭
}
?> 
分享到:
评论

相关推荐

    PHP中$GLOBALS[HTTP_RAW_POST_DATA]和$_POST的区别分析

    在PHP编程中,HTTP请求方式主要有GET和POST,而在处理POST数据时,开发者可能会遇到两种全局变量:`$_POST`和`$GLOBALS['HTTP_RAW_POST_DATA']`。这两个变量都与HTTP POST请求中的数据有关,但它们在使用场景和功能...

    PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析

    主要介绍了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别,结合具体实例形式分析了$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的功能与使用过程中的区别,需要的朋友可以参考下

    PHP实现接收二进制流转换成图片的方法

    本文实例讲述了PHP实现接收二进制流转换成图片的方法。分享给大家供大家参考,具体如下: 这里实现php 接收二进制流转换成图片,所使用的图片类imageUpload.php如下...* 故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA']

    浅谈PHP接收POST数据方式

    然后,通过print_r函数输出通过$_POST数组、$HTTP_RAW_POST_DATA和php://input接收到的数据。值得注意的是,我们用urldecode函数对从php://input获取的数据进行了URL解码,确保数据显示正确。 总结来说,PHP提供了...

    PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析

    因此,最佳实践是优先使用$_GET和$_POST来分别处理GET和POST数据,以确保更严格的输入验证和数据过滤。 在实际开发中,理解并正确使用这些超级全局变量是至关重要的。$GLOBALS用于在函数内外共享数据,$_SERVER提供...

    php获取post中的json数据的实现方法

    总之,当你需要在PHP中处理JSON格式的POST数据时,不要依赖`$_POST`,而是应该使用`$GLOBALS['HTTP_RAW_POST_DATA']`或`php://input`来获取原始数据,然后使用`json_decode()`进行解析。同时,确保客户端正确设置了`...

    易优瑜伽健身类培训网站源码 v1.6.4

    7. `data`:通常用来存储数据库备份、缓存文件或其他临时数据。 8. `install`:安装目录,包含网站安装所需的脚本和文件。 9. `public`:这是Web服务器的根目录,通常包含CSS、JavaScript、图片等静态资源。 10. ...

    PHP短视频流量社群掘金系统源码

    【PHP短视频流量社群掘金系统源码】是一个基于PHP编程语言构建的系统,旨在帮助用户挖掘短视频流量的商业价值,释放内容创作的潜力。通过这个系统,开发者或运营者可以搭建一个互动性强、用户粘性高的社区平台,促进...

    php获取POST数据的三种方法实例详解

    在PHP中,`$GLOBALS['HTTP_RAW_POST_DATA']`用于存储POST过来的原始数据。然而,这个变量的使用是有条件的,仅在PHP无法识别的Content-Type下,才会填充POST数据。例如,当Content-Type是`application/x-...

    php视频拍照上传头像功能实现代码分享

    如果要在php中实现视频拍照我们需要借助于flash插件了,由flash拍出的确照片我们再通过php的$GLOBALS [‘HTTP_RAW_POST_DATA’]接受数据,然后保存成图片就可以了,下面我来介绍一下。 使用的是$GLOBALS [...

    全网首发软件库系统--软件应用推广利器+PC端手机端自适应

    功能:无限模块,自定义、应用tab、文章、网址、幻灯所有模块均可无限复制添加,就怕你内容不够多!新增文章专题页面、常规空白页面模板! 1、首页所有模块均支持自定义拖拽式开启/关闭/排序;...

    php多次include后导致全局变量global失效的解决方法

    然而,如果在多个文件中连续使用`include`,而最后引入的文件中的函数又想通过`global`关键字引用之前定义的全局变量时,可能会遇到变量值为`null`的问题。这种情况通常发生在变量的作用域和生命周期管理不当的时候...

    php.ini-development

    data to the client. If your application's output exceeds this setting, PHP ; will send that data in chunks of roughly the size you specify. ; Turning on this setting and managing its maximum buffer ...

    全局变量中$GLOBALS['']和global的区别

    然而,当我们需要在函数内部使用全局变量时,有两种方式可以实现:`global`关键字和`$GLOBALS`数组。虽然两者都能访问全局变量,但它们在用法和效果上有所不同。 首先,`global`关键字是用来在函数内部引用全局变量...

    律师事务所咨询企业源码 v1.4.3 带会员系统+支付功能+熊掌号提交功能.zip

    软件环境:Apache/Nginx/IIS PHP 5.5~7.1 MySQL 5.1 及以上 本地电脑推荐使用PHPstudy安装,及安装在合适的网站空间、虚拟主机上。 默认后台 域名/login.php 律师事务所法律咨询源码是一款开源的THinkphp5.0 的 Blog...

    php保存二进制原始数据为图片的程序代码

    在示例代码中,我们通过`$GLOBALS['HTTP_RAW_POST_DATA']`来获取这个原始的二进制数据。 如果`HTTP_RAW_POST_DATA`为空,可能是因为PHP配置问题或服务器设置。在这种情况下,代码尝试使用`file_get_contents('...

    易优CMS精美简洁作文范文网站模板源码.zip

    易优CMS是一款基于PHP+MySQL开发的内容管理系统,它以其易用性和灵活性著称,尤其适合构建各类企业网站、资讯门户以及专题网站。本资源提供的"易优CMS精美简洁作文范文网站模板源码"是一个专为展示和分享作文范文...

    PHP中$GLOBALS与global的区别详解

    PHP中$GLOBALS和global都可以实现全局...$GLOBALS,$_SERVER,$_GET,$_POST,$_FILES,$_COOKIE,$_SESSION,$_REQUEST,$_ENV。 官方说明: $GLOBALS — 引用全局作用域中可用的全部变量。 一个包含了全部变量的全局

    ecshop 支付宝网银直连

    // $sql = "SELECT COUNT(*) FROM " .$GLOBALS['ecs']-&gt;table('order_goods'). // " WHERE is_real=1 AND order_id='$order[order_id]'"; // // if ($GLOBALS['db']-&gt;getOne($sql) &gt; 0) // { // /* 订单中存在实体...

Global site tag (gtag.js) - Google Analytics