zoukankan      html  css  js  c++  java
  • php curl上传文件$_FILES为空问题

    php使用curl上传文件,代码如下:

    发送的代码(完全是官方的示例)

    <?php

    /* http://localhost/upload.php:
    print_r($_POST);
    print_r($_FILES);
    */

    $ch = curl_init();

    $data = array('name' => 'Foo', 'file' => '@/home/vagrant/test.png');

    curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/load_file.php');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    curl_exec($ch);
    ?>

    接收代码(也是官方的)

    <?php
    print_r($_POST);
    print_r($_FILES);
    运行结果

    php -f demo.php
    Array
    (
    [name] => Foo
    [file] => @/home/vagrant/test.png
    )
    Array
    (
    )

    解决方法1:
    <?php

    /* http://localhost/upload.php:
    print_r($_POST);
    print_r($_FILES);
    */

    $ch = curl_init();

    $data = array('name' => 'Foo', 'file' => '@/home/vagrant/test.png');

    curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/load_file.php');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    curl_exec($ch);
    ?>

    解决方法2:
    5.6版本下
    <?php

    /* http://localhost/upload.php:
    print_r($_POST);
    print_r($_FILES);
    */

    $ch = curl_init();

    $data = array('name' => 'Foo', 'file' => new CURLFile(realpath('/home/vagrant/test.png')));

    curl_setopt($ch, CURLOPT_URL, 'http://localhost/test/curl/load_file.php');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

    curl_exec($ch);
    ?>

    相关文章:

    php curl文件上传兼容php5.0~5.6各版本

    http://www.cnblogs.com/zqifa/p/php-curl-2.html

  • 相关阅读:
    玉米不怕累,宇春最珍贵
    幸福
    谷歌位置搜索 蹩脚结合jquery.ui.gmap
    Resharp Format XML config
    正则表达取得 image src 中值
    一个Gif处理的类库
    使用nuGet管理自己的包
    正则表达式语言 快速参考
    动态加入JS及加入CSS
    检测是一个时间串或一个数字串是否连续
  • 原文地址:https://www.cnblogs.com/zqifa/p/php-curl-1.html
Copyright © 2011-2022 走看看