php输入流php://input使用浅析


Posted in PHP onSeptember 02, 2014

在做一个摄像头拍照然后上传的功能,php中使用php://input来获取内容。于是就了解了下php://input。

从官网信息来看,php://input是一个只读信息流,当请求方式是post的,并且enctype不等于”multipart/form-data”时,可以使用php://input来获取原始请求的数据。

看一个简单的例子。

客户端就是一个表单,非常简单。

<form action="" method="POST">

    name: <input type="text" name="name" value="tom" /><br />

    age:<input type="text" name="age" value="22" /><br />

    <input type="submit" value="Submit" />

</form>

将表单提交到服务端,服务端使用file_get_contents获取php://input内容
$content = file_get_contents("php://input");

echo $content; //输出name=tom&age=22

官网关于php://input的说明中,反复有提到$HTTP_RAW_POST_DATA这个变量,这个变量其实和 file_get_contents(php://input)的内容是一样的。如果要开启这个变量,需要修改配置文件,找到 always_populate_raw_post_data这个选项,设置为On,然后重新启动web服务器,就可以了。而使用php://input 不需要修改php配置文件。

在项目应用中,如摄像头拍照,上传保存,就可以用到php://input。客户端拍照后,把图片流传送到服务端,服务端使用file_get_getcontents(‘php://input')就能获取到图片流,然后把图片流保存到一个文件,这个文件就是图片了。

PHP 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
PHP概述.
Oct 09 PHP
php读取msn上的用户信息类
Dec 05 PHP
php下尝试使用GraphicsMagick的缩略图功能
Jan 01 PHP
基于PHP编程注意事项的小结
Apr 27 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 PHP
composer.lock文件的作用
Feb 03 PHP
orm获取关联表里的属性值
Apr 17 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 #PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 #PHP
PHP处理Json字符串解码返回NULL的解决方法
Sep 01 #PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 #PHP
重新认识php array_merge函数
Aug 31 #PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 #PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 #PHP
You might like
php算法实例分享
2015/07/14 PHP
php自动加载代码实例详解
2021/02/26 PHP
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
jQuery 获取遍历获取table中每一个tr中的第一个td的方法
2016/10/05 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python AES加密模块用法分析
2017/05/22 Python
python 调用c语言函数的方法
2017/09/29 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
关于青春的演讲稿三分钟
2014/08/22 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
教师岗位职责范本
2015/04/02 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
小学语文教师研修日志
2015/11/13 职场文书
写作指导:怎么书写竞聘演讲稿?
2019/07/04 职场文书