heat
V2EX  ›  问与答

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

  •  
  •   heat · Jan 19, 2017 · 2209 views
    This topic created in 3481 days ago, the information mentioned may be changed or developed.

    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 replies    2017-01-19 13:25:45 +08:00
    holystrike
        1
    holystrike  
       Jan 19, 2017
    heat
        2
    heat  
    OP
       Jan 19, 2017
    @holystrike 可是我明明加了呀
    server
        3
    server  
       Jan 19, 2017   ❤️ 1
    自己看吧,认真看下手册, https://segmentfault.com/a/1190000000725185
    wjfz
        5
    wjfz  
       Jan 19, 2017
    绝对路径。
    GG668v26Fd55CP5W
        6
    GG668v26Fd55CP5W  
       Jan 19, 2017 via iPhone
    curl 在这个的写法还真的和 PHP 版本有关系
    gouchaoer
        7
    gouchaoer  
       Jan 19, 2017 via Android
    @已经被淘汰了。。。注意最新写法
    heat
        8
    heat  
    OP
       Jan 19, 2017
    @server 非常感谢,已经搞定了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   913 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 22:02 · PVG 06:02 · LAX 15:02 · JFK 18:02
    ♥ Do have faith in what you're doing.