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 相关文章推荐
PHP+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
Sep 04 PHP
php中执行系统命令的方法
Mar 21 PHP
PHP使用PHPexcel导入导出数据的方法
Nov 14 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
php微信支付之公众号支付功能
May 30 PHP
PHP通过GD库实现验证码功能示例
Feb 23 PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
PHP sdk实现在线打包代码示例
Dec 09 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
php 生成WML页面方法详解
2009/08/09 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
解决Laravel5.2 Auth认证退出失效的问题
2019/10/14 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
js实现无缝滚动图
2017/02/22 Javascript
jQuery使用unlock.js插件实现滑动解锁
2017/04/04 jQuery
JavaScript事件处理程序详解
2017/09/19 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
Python内置数据结构与操作符的练习题集锦
2016/07/01 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
MYSQL支持事务吗
2013/08/09 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
社保委托书怎么写
2014/08/02 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
业务内勤岗位职责
2015/04/13 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js