V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
heat
V2EX  ›  问与答

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

  •  
  •   heat · 2017-01-19 10:39:08 +08:00 · 1773 次点击
    这是一个创建于 2873 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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();
    
    8 条回复    2017-01-19 13:25:45 +08:00
    holystrike
        1
    holystrike  
       2017-01-19 10:49:17 +08:00
    heat
        2
    heat  
    OP
       2017-01-19 11:37:42 +08:00
    @holystrike 可是我明明加了呀
    server
        3
    server  
       2017-01-19 11:40:27 +08:00   ❤️ 1
    自己看吧,认真看下手册, https://segmentfault.com/a/1190000000725185
    wjfz
        5
    wjfz  
       2017-01-19 12:22:49 +08:00
    绝对路径。
    falcon05
        6
    falcon05  
       2017-01-19 12:53:05 +08:00 via iPhone
    curl 在这个的写法还真的和 PHP 版本有关系
    gouchaoer
        7
    gouchaoer  
       2017-01-19 12:55:32 +08:00 via Android
    @已经被淘汰了。。。注意最新写法
    heat
        8
    heat  
    OP
       2017-01-19 13:25:45 +08:00
    @server 非常感谢,已经搞定了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1020 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.