php curl 上传文件代码实例


Posted in PHP onApril 27, 2015

假设server端上传文件处理脚本upload.php:

<?php  

  

print_r($_POST);  

print_r($_FILES); 

1、使用 CURL 默认的方法
//如果php文件是utf8编码,系统是GBK编码,那么就需要转下编码,要不然Php在系统中找不到这个文件    

$file = realpath(mb_convert_encoding('测试图片.JPG','GBK','utf8'));  

  

$file = realpath('temp.jpg'); //要上传的文件    

$fields['f'] = '@'.$file; // 前面加@符表示上传图片   

  

$ch =curl_init();  

  

  

curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php');  

  

curl_setopt($ch,CURLOPT_POST,true);  

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);  

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);  

  

  

$content = curl_exec($ch);  

  

echo $content; 

2、另类的做法,有时我们需要将动态产生的内容当做文件上传到远程服务器,却又不想在本地服务器中构建临时文件。这样就有了这个另类的写法
$contents =<<< 'TEXT'  

这里是文件内容,也可以是图片二进制,图片需要修改上传文件类型  

TEXT;  

  

$varname = 'my';//上传到$_FILES数组中的 key  

$name = '3.txt';//文件名  

$type = 'text/plain';//文件类型  

  

$key = "$varname\"; filename=\"$name\r\nContent-Type: $type\r\n";  

$fields[$key] = $contents;  

  

  

  

$ch =curl_init();  

  

  

curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php');  

  

curl_setopt($ch,CURLOPT_POST,true);  

curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);  

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);  

  

  

$content = curl_exec($ch);  

  

echo $content; 

PHP 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
PHP中数组的三种排序方法分享
May 07 PHP
PHP循环结构实例讲解
Feb 10 PHP
php生成图片验证码
Jun 09 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
PHP MSSQL 分页实例
Apr 13 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 PHP
php把大写命名转换成下划线分割命名
Apr 27 #PHP
PHP加密解密字符串汇总
Apr 26 #PHP
php开发中的页面跳转方法总结
Apr 26 #PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 #PHP
PHP开启opcache提升代码性能
Apr 26 #PHP
php格式化电话号码的方法
Apr 24 #PHP
php生成年月日下载列表的方法
Apr 24 #PHP
You might like
Linux下CoreSeek及PHP扩展模块的安装
2012/09/23 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
Javascript 遍历对象中的子对象
2009/07/03 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
python中sys.argv函数精简概括
2018/07/08 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python3.8中使用f-strings调试
2019/05/22 Python
python tkinter基本属性详解
2019/09/16 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
详解python logging日志传输
2020/07/01 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
数据库笔试题
2013/05/09 面试题
高级电工工作职责
2013/11/21 职场文书
办理信用卡工作证明
2014/01/11 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
论文指导教师评语
2014/04/28 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015年全民创业工作总结
2015/07/23 职场文书