PHP模拟浏览器上传文件(数据流形式上传)
25-04-07 03:49
547
0
用 PHP 上传文件基本都是临时存储,之后上传,怎么用 PHP 模拟浏览器以数据流形式上传文件
思路及代码如下:
//网址 参数 文件 function upload($url, $p, $file) { $param = [ //此处根据实际文件的上传的 name 填写 'fileData' => file_get_contents(realpath($file)), ]; if (!empty($p)) { arrary_merge($p, $param); } $delimiter = uniqid(); $data = ''; $eol = "\r\n"; $upload = $param['fileData']; unset($param['fileData']); foreach ($param as $name => $content) { $data .= "--" . $delimiter . "\r\n" . 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n" . $content . "\r\n"; } // 拼接文件流 name="fileData"; filename="1.png"' 根据实际的文件 name 和名字填写 或写个变量 //'Content-Type: image/gif'可改为'Content-Type:application/octet-stream' 由于我是测试的网站必须为 gif 所以就这样吧先 $data .= "--" . $delimiter . $eol . 'Content-Disposition: form-data; name="fileData"; filename="1.png"' . "\r\n" . 'Content-Type: image/gif' . "\r\n\r\n"; $data .= $upload . "\r\n"; $data .= "--" . $delimiter . "--\r\n"; $post_data = $data; $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_HTTPHEADER, [ "Content-Type: multipart/form-data; boundary=" . $delimiter, "Content-Length: " . strlen($post_data), ]); $response = curl_exec($curl); curl_close($curl); return $response; }
请根据实际情况进行实际调用
-
高效程序员的45个习惯敏捷开发修炼之道
仅仅还在几年前,XP还被认为是方法异教,FDD属于黑客程序方法。如今,敏捷俨然已经成为主流学说,敏捷方法成为人们学习和讨论的热点。敏捷... 951 0 24-05-24 -
猫眼电影小程序
实现的功能 页面滚动到底部加载更多 电影详情页面、影院详情页面 电影购票功能、小吃购买功能 显示历史订单,可删除、可添加 电影显示所有... 1055 0 24-11-05 -
ChaGPT AI智能工具Android安卓APP
通过 ChatGPT,获得即时回答、专业建议和创意灵感,智能聊天的新纪元,从此开始无限畅谈!ChatGPT产品亮点1. 强大的自然语言处理技术Chat... 897 0 24-12-14 -
分页样式3D立体外观
345 0 21-05-17 -
2012计算机 信息技术专业教师招聘资料
【豆丁★教育百科】'初中信息技术教师招聘考试试题',doc_type,doc.doc【豆丁★教育百科】08年云南省特岗小学信息技术教师招聘考试... 1249 0 24-08-20 -
开源仓库合集
开源仓库FossHub微漫APP超轻量级中文ocr双拼练习呼吸放松社交图在线生成中国传统颜色加密猫OpenClash在线阅读工具CloudreveFindInChannelBo... 672 0 25-03-10 -
Java线程 基础入门
操作系统中线程和进程的概念现在的操作系统是多任务操作系统,多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程... 1100 0 24-05-28 -
V2EX社区小程序
WeApp-V2ex:构建高效社交应用的开源框架是一个基于微信小程序开发的开源框架,旨在帮助开发者快速、灵活地构建类似V2ex的社区应用程序。该... 886 0 24-09-19
发表我的评论
共0条评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~