PHP接收App端发送文件流的方法
网络编程 2021-07-05 09:10www.168986.cn编程入门
这篇文章主要介绍了PHP接收App端发送文件流的方法,涉及php基于curl的文件传输操作相关技巧,需要的朋友可以参考下
本文实例讲述了PHP接收App端发送文件流的方法。分享给大家供大家参考,具体如下
解决思路
1. 客户端多张图片进行循环上传,附带参数,并用一定规则组合生产数据流(图片数据放在)
2. 使用数据流进行传输,php服务端用file_get_content('php://input')进行接收
3. 传输完毕后将数据流按照规则分割,取出的图片数据,并写入图片文件
示例代码
以下代码是发送单张图片和参数PHP文件,多张图片可循环调用。
<?php / curl_post.php / // 设置请求的POST地址,必须是包含网址的域名,不能是相对路径 $url = 'http://.xxx./post.php'; $pic_data = file_get_contents('./me.jpg'); $data = [ 'username=chafang_'.rand(100, 999), 'password='.md5('123456'), 'pic=' => $pic_data, // 这里存放图片数据 ]; // 使用 '#####' 进行分割数组 $strData = implode('#####', $data); $curl = curl_init(); curl_set($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_set($curl, CURLOPT_HEADER, 0); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_set($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_set($curl, CURLOPT_POST, 1); curl_set($curl, CURLOPT_POSTFIELDS, $strData); $data = curl_exec($curl); curl_close($curl); // 显示post的返回值 echo ($data);
接收curl请求的PHP文件,返回json格式
<?php / post.php / $content = file_get_contents("php://input"); $domain = 'http://.xxx./'; // 注意这里需要有写权限 $filename = 'update/'.time().'_'.rand(100000, 999999).'.jpg'; $data = explode('#####', $content, 3); $count = count($data); $result = []; // 如果文件写入成功 if (file_put_contents($filename, $data[$count - 1])) { // 删除数据中一个元素(就是图片) unset($data[$count - 1]); foreach ($data as $val) { // 返回参数,且参数值不能存在 '=' 号 $tmp = explode('=', $val, 2); $result[$tmp[0]] = $tmp[1]; } // 组合图片访问地址 $result['pic'] = $domain.$filename; } echo json_encode($result);
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
上一篇:轻松掌握php设计模式之访问者模式
下一篇:适合PHP初学者阅读的4本经典书籍
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指