Home  >  Article  >  Backend Development  >  php://input 接收文件失败,图片变的非常小,无法打开

php://input 接收文件失败,图片变的非常小,无法打开

WBOY
WBOYOriginal
2016-06-23 14:21:181128browse

图片 php 数据

我用php://input 接收图片代码如下
$file= file_get_contents('php://input');   $this->filename=time().'.jpg';   $dirname .='Uploads'.DIRECTORY_SEPARATOR.'face'.DIRECTORY_SEPARATOR.'1';     $url=$dirname.DIRECTORY_SEPARATOR.$this->filename;   $handle=fopen($url, 'w');   fwrite($handle, $file);   fclose($handle);

上传的图片有70多kb结果接收后保存下来只有70多字节,根本无法打开,我用var_dump()把接收的数据流打印出来是:image=955e0caajw1dwnvnfmwk4j.jpg&submit=%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88
这样对吗?该怎么解决这个问题?

回复讨论(解决方案)

image=955e0caajw1dwnvnfmwk4j.jpg&submit=%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88
是表单控件的值

上传图片要用 $_FILES 数组处理
因为上传文件的数据流被 php 拦截了,php://input 只能得到其他表单控件的值

image=955e0caajw1dwnvnfmwk4j.jpg&submit=%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88
是表单控件的值

上传图片要用 $_FILES 数组处理
因为上传文件的数据流被 php 拦截了,php://input 只能得到其他表单控件的值 我是要接收android客户端发来的图片,android是以文件流的形式发送图片,$_FILES可以接收文件流?


image=955e0caajw1dwnvnfmwk4j.jpg&submit=%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88
是表单控件的值

上传图片要用 $_FILES 数组处理
因为上传文件的数据流被 php 拦截了,php://input 只能得到其他表单控件的值 我是要接收android客户端发来的图片,android是以文件流的形式发送图片,$_FILES可以接收文件流?
php://input 过来的图片数据流,只能用
file_put_contents('images/1.jpg',file_get_contents("php://input"));
保存

行不行你 print_r($_FILES) 就知道了!
无论客户端是什么东西,你经 php://input 得到的是 
名为 image 控件的值:955e0caajw1dwnvnfmwk4j.jpg
名为 submit 控件的值:%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88 (上??案)

反正是没有图片数据流

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn