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 mssql 日期出现中文字符的解决方法
Mar 10 PHP
php去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
Jan 10 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php中final关键字用法分析
Dec 07 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
解决Laravel blade模板转义html标签的问题
Sep 03 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 PHP
is_file和file_exists效率比较
Mar 14 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
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
Vue中el-form标签中的自定义el-select下拉框标签功能
2020/04/20 Javascript
import的本质解析
2017/10/30 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
python isinstance函数用法详解
2020/02/13 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
介绍一些UNIX常用简单命令
2014/11/11 面试题
建筑行业的大学生自我评价
2013/12/08 职场文书
财会自我鉴定范文
2013/12/27 职场文书
工地安全检查制度
2014/02/04 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
车辆委托书范本
2014/10/05 职场文书
党课主持词大全
2015/06/30 职场文书