>  기사  >  백엔드 개발  >  php://input 接收文件失败,图片变的非常小,无法打开

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

WBOY
WBOY원래의
2016-06-23 14:21:181134검색

图片 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 (上??案)

反正是没有图片数据流

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.