首页 > 后端开发 > php教程 > 请教app上传图片,php如何接收处理 (用的TP)

请教app上传图片,php如何接收处理 (用的TP)

WBOY
发布: 2016-06-23 13:32:39
原创
1985 人浏览过


网上查了好多资料,
有的用base64
有的用 $_FILES;
             ($_POST;
             file_get_contents('php://input')

有没有可以模拟出来一个客户端上传, 然后 PHP后端处理完成的例子?
不是很明白原理,谢谢


回复讨论(解决方案)

用tp本身自带的上传类,不行吗?改成接口

class UserAction extends Action{		//添加		public function add(){			// var_dump(uniqid().(time().rand(0,100)));			// die();			import('ORG.Net.UploadFile');                        $upload = new UploadFile();// 实例化上传类            $upload->maxSize  = 3145728 ;// 设置附件上传大小            $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型            //$upload->saveRule = uniqid;//这个是改变图片名称的,可同时改变多张图片的名称,实现图片的不同名 这样也就不会出现覆盖的现象了            $upload->saveRule='mytime';            $upload->savePath =  './Public/Uploads/';// 设置附件上传目录            if(!$upload->upload()) {// 上传错误提示错误信息                $this->error($upload->getErrorMsg());            }else{// 上传成功 获取上传文件信息                $info =  $upload->getUploadFileInfo();            }            $user   =   M('user');            $user->create(); // 创建数据对象            $user->user_pic = "http://".$this->_server('HTTP_HOST').'/Public/Uploads/'.$info[0]['savename']; // 保存上传的照片根据需要自行组装            $user->user_idcard = "http://".$this->_server('HTTP_HOST').'/Public/Uploads/'.$info[1]['savename'];            $user->user_card = "http://".$this->_server('HTTP_HOST').'/Public/Uploads/'.$info[2]['savename'];            //$user->piclink = "http://".$this->_server('HTTP_HOST').'/Public/Uploads/'.$info[0]['savename']; //                         //$user->time =  date('Y-m-d H:i:s',time());            $user->add();            // echo $flash->getlastsql();            // die();            $this->success("数据保存成功!");  				}
登录后复制

如何测试,必须用客户端来提交吗?好模拟出数据来不?谢谢

我们的app上传图片使用http上传的,我测试时,用的form表单,设置form属性为enctype="multipart/form-data"
后台获取用$_FILES就可以获取了



怎么看 app前端上传图片用的什么格式啊? 请教

那就得问开发app的人怎么上传图片的,一般都是http 表单上传,也就是说,你用form表单的就能模拟app上传了
当然,你也可以,打印出$_FILES里面的数据,若有,就表示获取到了app上传的图片,没有就失败了呗

app上传,php这边接收不用改的,与网页上传一样。
app那边使用 content-disposition: form-data; 这种方式上传就可以了。
参考: http://blog.csdn.net/fdipzone/article/details/12180523

根据APP的上传方式来决定PHP端的获取方式,多数都是表单式上传。
$_FILES; file_get_contents('php://input')都可以。。

还有的是先在客户端读取了文件内容,再base64编码,再上传。
比较简单的大文件断点上传,其实就可以这种【主要靠APP处理】。

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板