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

php curl上传文件$_FILES为空问题相关推荐

  1. php curl上传文件返回false,php curl上传文件$_FILES为空的问题

    PHP 5.0~5.6 各版本兼容的cURL文件上传 最近做的一个需求,使用PHP cURL上传文件.踩坑若干,整理如下. 不同版本PHP之间cURL的区别 PHP的cURL支持通过给CURL_POS ...

  2. php curl文件上传,在 php 中通过 CURL 上传文件

    1.使用 CURL 默认的方法$file = realpath('gif/1.gif'); //要上传的文件 $fields['f'] = '@'.$file; $ch = curl_init(); ...

  3. php通过curl上传文件

    php使用curl上传文件. // 上传的地址 $url = "https://xxx.com/upload"; $ch = curl_init(); curl_setopt($c ...

  4. 命令行curl上传文件_命令行基础知识:使用cURL下载文件

    命令行curl上传文件 Client URL, or simple cURL is a library and command-line utility for transferring data b ...

  5. 使用PHP处理POST上传时$_FILES数组为何为空

    在做一个简单的表单上传测试时,服务端的php脚本中,$_FILES数组为空;这样就不能获取从浏览器上传的信息.什么原因呢? 通过Google,找到下面这个web: php上传文件$_FILES数组为空 ...

  6. 使用curl上传带有文件的POST数据

    本文翻译自:Using curl to upload POST data with files I would like to use cURL to not only send data param ...

  7. php异步传输,php 异步处理-上传文件

    这篇文章主要介绍了关于php 异步处理-上传文件,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下// fsockopenpublic function testFsockeopen(){ ...

  8. php异步处理下载文件,php异步处理-上传文件

    这篇文章主要介绍了关于php 异步处理-上传文件,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下// fsockopenpublic function testFsockeopen(){ ...

  9. php 上传 413,PHP CURL上传文件出现413 Request Entity Too Large

    php在使用CURL上传文件时出现413 Request Entity Too Large,网上也查找了很多方案,但是都不起作用 经仔细检查,发现curl_setopt的各个参数设置的顺序也会有影响. ...

最新文章

  1. [其实有加强版的]校门外的树
  2. 网络设备主备配置系列3:华为防火墙(路由模式)
  3. 学习参数传递及const成员变量初始化
  4. HTML基础重要知识点图文,HTML5基础知识点总结
  5. 计算图像相似度——《Python也可以》之一
  6. ashx和asmx的HttpContext
  7. [转]Microsoft Solution Framework 微软解决方案框架结构
  8. php 多进程 常驻内存,PHP 多进程与信号中断实现多任务常驻内存管理 [Master/Worker 模型]...
  9. php怎样查看视频播放的进度条,H5中视频与音频标签和进度条如何使用
  10. 马化腾出售腾讯股份,四天套现近20亿港元;朋友圈发红包测试视频红包玩法...
  11. Nodejs内存控制详解(上篇)
  12. IDEA 编译构建等工程配置
  13. Linux访问windows共享文件夹
  14. 使用Areas分离ASP.NET MVC项目
  15. java情话代码,程序员浪漫的二进制表白代码
  16. PCIe协议中的电源管理概述
  17. pyqt 鼠标离开按钮_小米 Smart Pad 体验:表面它是个鼠标垫,其实还是个鼠标垫...
  18. 使用域名邮箱发送邮件
  19. java.lang.IllegalArgumentException: java.security.InvalidKeyException: Illegal key siz
  20. FreeCodeCamp学习--Slasher Flick

热门文章

  1. cocos2dx的runAction: 反复运行,多个动作连接运行,多个动作同一时候运行的实现
  2. YII与Ace Admin 的集成
  3. CSS样式表操作及选择器定义
  4. myeclipse文档链接oracle,[数据库]MyEclipse 连接Oracle数据库(初学者必看)
  5. java字体颜色编程_Java 字体颜色转换工具类 ColorUtil
  6. sql有循环吗_我把 SQL 执行效率提高了 10,000,000 倍!
  7. python编写代码运用递归画图形_python数据结构与算法 22 递归图形
  8. Java中null和浮点数相乘_jvm规范之浮点数 - 你知道吗,有个数字它和自身不相等...
  9. Android LiveData
  10. java for循环死循环_Java for循环进化