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下读取文本文件的代码
Jul 02 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
PHP中time(),date(),mktime()区别介绍
Sep 28 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 PHP
Symfony实现行为和模板中取得request参数的方法
Mar 17 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
PHP截断标题且兼容utf8和gb2312编码
2013/09/22 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
python 链接和操作 memcache方法
2017/03/04 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
生产管理的三大手法
2013/11/11 职场文书
会计演讲稿范文
2014/05/23 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
婚礼家长致辞
2015/07/27 职场文书
python入门之算法学习
2021/04/22 Python
Go中使用gjson来操作JSON数据的实现
2022/08/14 Golang