请问如何用 PHP 的 CURL 完全模拟 FILES 上传?

2017-01-19 10:39:08 +08:00
 heat

HTML 代码如下。

<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="pic1">
<button type="submit">上传</button>
</form>

在这种情况下直接点提交,是可以正常提交给 upload.php 的。但是现在我必须用 Curl 来模拟提交。

于是把 HTML 里的 action 改为当前页,并写如下的 Curl ,但是提交不成功。请问我应该怎么写才对?

$data['pic1'] = '@'.$_FILES['pic1']['tmp_name'].';type='.$_FILES['pic1']['type'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'upload.php');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$rs = curl_exec($ch);
print_r($rs);
exit();
1782 次点击
所在节点    问与答
8 条回复
holystrike
2017-01-19 10:49:17 +08:00
heat
2017-01-19 11:37:42 +08:00
@holystrike 可是我明明加了呀
server
2017-01-19 11:40:27 +08:00
自己看吧,认真看下手册, https://segmentfault.com/a/1190000000725185
sun2920989
2017-01-19 11:43:15 +08:00
wjfz
2017-01-19 12:22:49 +08:00
绝对路径。
falcon05
2017-01-19 12:53:05 +08:00
curl 在这个的写法还真的和 PHP 版本有关系
gouchaoer
2017-01-19 12:55:32 +08:00
@已经被淘汰了。。。注意最新写法
heat
2017-01-19 13:25:45 +08:00
@server 非常感谢,已经搞定了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX