PHP使用curl模拟post上传及接收文件的方法


Posted in PHP onMarch 04, 2016

本文实例讲述了PHP使用curl模拟post上传及接收文件的方法。分享给大家供大家参考,具体如下:

public function Action_Upload(){
     $this->path_config();
    exit();
    $furl="@d:\develop\JMFrameworkWithDemo.rar";
    $url= "http://localhost/DemoIndex/curl_pos/";
    $this->upload_file_to_cdn($furl, $url);
}
public function upload_file_to_cdn($furl,$url){
    //  初始化
    $ch = curl_init();
    // 要上传的本地文件地址"@F:/xampp/php/php.ini"上传时候,上传路径前面要有@符号
    $post_data = array (
      "upload" => $furl
    );
    //print_r($post_data);
    //CURLOPT_URL 是指提交到哪里?相当于表单里的“action”指定的路径
    //$url = "http://localhost/DemoIndex/curl_pos/";
    //  设置变量
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);//执行结果是否被返回,0是返回,1是不返回
    curl_setopt($ch, CURLOPT_HEADER, 0);//参数设置,是否显示头部信息,1为显示,0为不显示
    //伪造网页来源地址,伪造来自百度的表单提交
    curl_setopt($ch, CURLOPT_REFERER, "http://www.baidu.com");
    //表单数据,是正规的表单设置值为非0
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 100);//设置curl执行超时时间最大是多少
    //使用数组提供post数据时,CURL组件大概是为了兼容@filename这种上传文件的写法,
    //默认把content_type设为了multipart/form-data。虽然对于大多数web服务器并
    //没有影响,但是还是有少部分服务器不兼容。本文得出的结论是,在没有需要上传文件的
    //情况下,尽量对post提交的数据进行http_build_query,然后发送出去,能实现更好的兼容性,更小的请求数据包。
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    //   执行并获取结果
    curl_exec($ch);
    if(curl_exec($ch) === FALSE)
    {
      echo "<br/>"," cUrl Error:".curl_error($ch);
    }
    //  释放cURL句柄
    curl_close($ch);
    echo "aaa45";
}
function action_curl_pos(){
    var_dump($_FILES);
    $aa= move_uploaded_file($_FILES["upload"]["tmp_name"], "/wamp/tools/1.rar");
    if($aa){
      echo "11";
    }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
配置最新的PHP加MYSQL服务器
Oct 09 PHP
谈谈PHP语法(2)
Oct 09 PHP
PHP基础知识介绍
Sep 17 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
Oct 21 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
javascript+php实现根据用户时区显示当地时间的方法
Mar 11 PHP
PHP中基本HTTP认证技巧分析
Mar 16 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
laravel框架的安装与路由实例分析
Oct 11 PHP
PHP生成和获取XML格式数据的方法
Mar 04 #PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 #PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 #PHP
zend framework中使用memcache的方法
Mar 04 #PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 #PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 #PHP
Codeigniter中集成smarty和adodb的方法
Mar 04 #PHP
You might like
中东人咖啡哲学
2021/03/03 咖啡文化
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
Python每天必学之bytes字节
2016/01/28 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
Python with语句和过程抽取思想
2019/12/23 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
Java基础知识面试要点
2016/07/29 面试题
12.4全国法制宣传日活动总结
2014/11/01 职场文书
高二化学教学反思
2016/02/22 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python