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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
Nov 02 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
php实现的替换敏感字符串类实例
Sep 22 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
使用PHPMailer实现邮件发送代码分享
Oct 23 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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 观察者模式的实现代码
2013/05/10 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
PHP中overload与override的区别
2017/02/13 PHP
cakephp常见知识点汇总
2017/02/24 PHP
定义select的边框颜色
2008/04/28 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
ASP.NET jquery ajax传递参数的实例
2016/11/02 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
[02:42]完美大师赛主赛事淘汰赛第三日观众采访
2017/11/25 DOTA
Django 实现下载文件功能的示例
2018/03/06 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
详解Html5中video标签那些属性和方法
2019/07/01 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
.NET常见笔试题集
2012/12/01 面试题
工程力学专业毕业生求职信
2013/10/06 职场文书
自我鉴定注意事项
2014/01/19 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
物业管理专业求职信
2014/06/11 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书