• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php 接收App端发送文件流的方法示例代码

php 搞代码 4年前 (2022-01-22) 14次浏览 已收录 0个评论

这篇文章主要介绍了PHP接收App端发送文件流的方法,涉及php基于curl的文件传输操作相关技巧,需要的朋友可以参考下

本文实例讲述了PHP接收App端发送文件流的方法。分享给大家供大家参考,具体如下:

解决思路:

1. 客户端多张图片进行循环上传,同时附带参数,并用一定规则组合生产数据流(图片数据放在最后)
2. 使用数据流进行传输,php服务端用file_get_content('php://input')进行接收
3. 传输完毕后将数据流按照规则分割,取出最后的图片数据,并写入图片文件

示例代码:

以下代码是发送单张图片和参数PHP文件,多张图片可循环调用。

<?php/* curl_post.php */// 设置请求的POST地址,必须是包含网址的域名,不能是相对路径$url = 'http://www.xxx.com/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_setopt($curl, CURLOPT_URL, $url);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 0);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($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://www.xxx.com/';// 注意这里需要有写权限$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('=&#39<div style="color:transparent">本文来源gaodai.ma#com搞##代!^码@网*</div><pre>搞gaodaima代码

;, $val, 2); $result[$tmp[0]] = $tmp[1]; } // 组合图片访问地址 $result['pic'] = $domain.$filename;}echo json_encode($result);

以上就是php 接收App端发送文件流的方法示例代码的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php 接收App端发送文件流的方法示例代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址