php文件上传 github,PHP的cURL文件上传
cURL介绍
cURL是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。PHP也支持cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。
PHP创建cURL的基本结构
1)初始化
curl_init()
2)设置变量
curl_setopt()
3)执行并获取结果
curl_exec()
4)释放cURL句柄
curl_close()
PHP cURl实现GET和POST
GET方式实现//初始化
$ch = curl_init();
//设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://loalhost/test.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行并获取HTML文档内容
$output = curl_exec($ch);
//释放curl句柄
curl_close($ch);
//打印获得的数据
print_r($output);
POST方式请求$url = "http://localhost/test.php";
$post_data = array('key' => 'value');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
以上方式获取到的数据是json格式的,使用json_decode函数解释成数组。
$output_array = json_decode($output,true);
PHP不同版本之间cURL上传文件的区别
普通curl命令形式访问
curl -F "name=jason&file=@/tmp/test.jpg" htt://localhost/test.php
PHP的cURL类库上传文件
PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求。
传统上,PHP的cURL支持通过在数组数据中,使用“@+文件全路径”的语法附加文件,供cURL读取上传。这与命令行直接调用cURL程序的语法是一致的:
curl_setopt(ch, CURLOPT_POSTFIELDS, array(
'file' => '@'.realpath('image.png'),
));
$ curl -F "file=@/absolute/path/to/image.png"
PHP从5.5开始引入了新的CURLFile类用来指向文件。CURLFile类也可以详细定义MIME类型、文件名等可能出现在multipart/form-data数据中的附加信息。PHP推荐使用CURLFile替代旧的@语法:
curl_setopt(ch, CURLOPT_POSTFIELDS, [
'file' => new CURLFile(realpath('image.png')),
]);
PHP5.5另外引入了CURL_SAFE_UPLOAD选项,可以强制PHP的cURL模块拒绝旧的@语法,仅接受CURLFile式的文件。5.5的默认值为false,5.6的默认值为true。
注:PHP5.4及以下版本仅支持@语法形式;PHP5.5两种都是支持的,设置CURL_SAFE_UPLOAD=true强制使用CURLFile方式;PHP5.6+仅支持CURLFile方式,即使设置CURL_SAFE_UPLOAD=false也是毫无意义的。
参考资料
php文件上传 github,PHP的cURL文件上传相关推荐
- Github项目(克隆,上传)简单git命令流程使用记录
github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,将本地代码上传,也就是代码要公开.同时,我们也可以使用其强大的git命令去clone ,fork ...
- mac使用 github 这一篇就足够啦 + 上传github出现 白色向右箭头处理方法
1.mac使用 github 点击跳转 2.上传github出现 白色向右箭头处理方法 1.删除这个文件夹就可 2.小技巧 上传 github 或者 给别人文件时,记得删掉 node_modules包 ...
- php curl post 文件_php curl文件上传$_FILES为空,只有$_POST有值,如何兼容php5.0~5.6各版本...
PHP 5.5以下用@,php5.5 @已被弃用,但勉强还能用,php5.6直接删除了@用法,必须得用new CURLFile(realpath('image.png'))这种方式才行了.关键我这还没 ...
- Android数据存储之文件存储(瞬时数据的存储与读取)项目已上传GitHub
GitHub地址: https://github.com/Skymqq/FileSave.git 数据持久化就是指将那些内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然 ...
- 考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件.踩坑若干,够一篇文章了. 重要警告 没事不要读PHP的官方中文文档!版本跟不上坑死你! 不同版本PHP ...
- 如何上传文件夹到GitHub上(配图详解)
上传文件夹到GitHub 1.如果没有账号要先创建账号(有账号跳过此步骤) 2.建立一个仓库(有仓库跳过此步骤) 3.复制仓库地址 4.以下为本地操作 4.1.在本地新建一个空文件夹 4.2.上传文件 ...
- centos用php上传文件,WBB - Centos下PHP无法Curl模拟Post上传文件的问题
有个产品需要上传图片到贴图库.为此还开了个贴图库的会员. 用的方案是ueditor+贴图库插件,自己加了个从dz拉过来的前端上传控件,然后禁用了Ueditor的上传按钮,毕竟数据先过一次后端再到贴图库 ...
- .git文件夹_如何使用git把本地代码上传(更新)到github上
什么是git?git是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理.git是一种工具,它能更好的让我们管理代码.很多时候如果我们需要保持本地代码和github代码版本 ...
- 如何用Git向GitHub上传送文件(从注册GitHub到用Git上传的每一步)
文章目录 1.GitHub 1.1.GitHub注册(已经注册过的直接看1.2GitHub仓库的建立) 1.2 GitHub仓库的建立 2.Git 2.1Git 安装 2.2 Git 下载 2.3 G ...
最新文章
- Go 学习笔记(56)— Go 第三方库 sqlx (操作数据库)
- ubuntu数据库安装配置
- Oracle 小技巧
- 2018秋招面经:斗鱼、滴滴、百度、美团、小米、腾讯
- Chrome 隐藏 SSL 证书信息 禁止禁用 DRM
- 测试点3的分析:1022 D进制的A+B (20分)——15行代码AC
- php实现把es6转为es5,如何将ES6代码转化为ES5?
- 实例构造器与类型构造器
- Linux之find学习--详解
- Myeclipse中添加XFire插件支持
- redis 哨兵 异步_Redis稍微往上一点点写点集群
- 给浪费时间找种方法?
- 富国银行眼下乱成一团糟:数据中心被烟雾笼罩,银行网站和应用软件宕机
- Mysql 临时表详解(temporary table)
- excel两个表格数据对比_Excel跨表格数据对比
- Win8.1的IE缓存文件夹哪里去了?细说系统安装分区里那些带箭头的文件夹
- python的debug为什么点第一行直接运行结束了_Python 代码调试工具 pdb 快速入门
- python 爬虫 403 Forbidden
- ios直播开发基础,推流协议及流程
- java gef_GefExample GEF的例子,用于eclipse 学习,非常好的源码材料。 Java Develop 238万源代码下载- www.pudn.com...
热门文章
- win 2016 ssh_多台WIN10之间的SSH免密登录
- python进程池:multiprocessing.pool
- Page directive: illegal to have multiple occurrences of contentType with different values
- 计算机社团竞选优势6,社团社长竞选稿六篇
- php语言的四种循环控制语句,PHP循环控制语句
- 1.关于python
- 让VC编译的程序链接到系统的 msvcrt.dll 的方法
- oracle中OEM证书失效怎么办,安全证书过期怎么办 网站安全证书失效处理【解决方法】...
- php 递归展现城市信息,PHP 递归兑现层级树状展现数据
- 简单点赞效果html,js实现点赞效果