在做一个摄像头拍照然后上传的功能,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输入流php://input的使用分析

相关
Related Posts
MySQL 查询时强制区分大小写让MySQL搜索区分大小写或排序时分大小写方法如下: 1.在SQL中强制 SELECT `field` FROM `table` WHERE BINARY `colunm` = 'xxxxxx' SELECT `field`…
php程序员应具有的7种能力php程序员应具有什么样的能力,才能更好的完成工作,才会有更好的发展方向呢?在中国我想您不会写一辈子代码的,那样不可能,过了黄金期,您又怎么办呢?看了本文后,希望对您有所帮助。 一,php能力 1,了解阶段,您能写一些代码,因为那是在手册和google的帮助下,您才完成的。变量乱定义,N多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦。 2,熟悉阶段,经常查函数,手册估计也看过一,二遍了,常用的函数基本上您都了解了。后 期维护给您带来了不少痛苦,您开始发现自己的代码有很多不足,开始思考如果改进自己的代码,如何站在项目的角度来规划自己的代码,而不是想到什么写什么, 知道如何来减少冗余代码,使您的代码清晰,知道什么样的代码写出来让人看着舒服,基本的代码规范,已经形成。为了提高自己,会特意的去一些技术性的论坛, 学习研究。 3,很熟悉阶段,本来我想写精通的,到现在我也不知道精通是到什么程度,也没有听到有人 说自己精通PHP的,所以就用很熟悉了。这个阶段,我想您已经从面向过程进入了面向对象。个人觉得面向对象的最大好处就是,能使整个项目功能化,模块化, 后期维护,改版,升级就很方便了。没有面向对象的时候,不也一样开发吗.这个时期,您已经研究过了一种或者几种框架,结合自己的实际项目经验,在脑子里已…
mysql数据库查询优化上两周一直想办法提高查询速度,取得一点效果,解决了部分问题,记下来以便将来自己查看。 由于公司没有专门的DBA,我自己对mysql数据库也不是很熟悉,而且这个JAVA开发的网络审计系统的管理系统,是经过了N多人几年时间的修修改改,今天到我们手里,要改成能支持大流量情况的版本,所以对我们这个只有几个人的JAVA组来说,确实是个难题。 这个大流量的情况在以前的文章里也提到过,就是要支持每秒钟处理1G左右的网络数据包,HTTP协议的数据包最多,因此HTTP协议分析模块的流水 日志表记录最大,据估算可能到达一天4000万条记录,采用一天一张表,那也是很大的,我看了.MYD文件大小,已经是8G多了。 而我们管理系统查询日志记录时,对好几个字段都要进行条件查询,而且有几个字段长度达到256,在8G这么大的表里查询一个字符串,如果找不到,那 必定从头要查到尾,速度慢得根本受不了。客户还要好几个字段一起设置条件来查询,这样基本上是二三十分钟都出不来,系统可用性极差。 我采用的方法是以测试为主,同时看JAVA代码,通过Log4j和Perf4j日志,看每个sql语句使用的时间,寻找性能瓶颈,然后有的放矢地进行优化。 对查询最有效果的优化,自然是建立索引了,ID自然是自增、主键,这个前人已经做了;从where语句分析,时间字段作为查询条件很多,时间是8字 节,而且不重复,设置索引比较适合。我把时间设置为索引,有一点效果,但不大,估算一下:8…