php curl上传图片怎么获取本地图片绝对路径?

发布于 2022-09-12 02:20:34 字数 592 浏览 39 评论 0

通过php Curl上传图片到服务端,如何在前端将图片POST过来?因为curl上传图片需要获取本地图片的绝对路径,但是浏览器获取不到的,只能获取宇哥fakepath

<?php
//设置 header 
header("Content-type:application/json");

//初始化 CURL
$ch = curl_init();

//目标服务器地址 
curl_setopt($ch, CURLOPT_URL, 'https://mp.sohu.com/commons/upload/file');

//设置上传的文件 
curl_setopt($ch, CURLOPT_POST, true);
$data = array('file' => new CURLFile("这里要填绝对路径才可以上传")); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
curl_close($ch);
?>

完整的绝对路径是
C:/Users/Administrator/Desktop/123.jpg

但是浏览器获取不到,大家用curl是怎么上传图片的?怎么获取图片路径?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

画离情绘悲伤 2022-09-19 02:20:34

看你的需求是,用户先把文件传到服务器 A 、再在服务器 A 中使用 CURL 把文件传到 CURL B ?

+------------------+        +------------------+       +------------------+
|                  |        |                  |       |                  |
|                  |        |                  |       |                  |
|       User       +------->+    Server A      +------>+     Server B     |
|                  |        |                  |       |                  |
|                  |        |                  |       |                  |
+------------------+        +------------------+       +------------------+

这样的话,用户上传文件后, $_FILES 里面表单键值的 tmp_name ,就是暂存在服务器 A上面的路径,可以用 CURL 直接上传到服务器 B。但是,这种情况一般都建议使用 User ---> Server B,用户直传 Server B,而不是通过 Server A 进行中转

一场信仰旅途 2022-09-19 02:20:34
  1. 前端上传到服务器A后,先保存到服务器A,保存的时候自然知道绝对路径,然后按你的方法进行后面的操作;
  2. 或者,前端直接把文件 base64 的格式传到后端,服务器A直接把 base64 的数据 post到服务器B去。
人心善变 2022-09-19 02:20:34

经过后续的学习,是不能实现直接A->C的,只能A->B->C,我要实现的是图片上传,先在浏览器上传图片到我自己的服务器,然后通过我自己的服务器模拟提交到sohu的服务器,我的服务器作为一个中转站。

成品:http://upload.likeyunba.com/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文