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 相关文章推荐
2.PHP入门
Oct 09 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
PHP实现清除wordpress里恶意代码
Oct 21 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
Aug 19 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
php 调用百度sms来发送短信的实现示例
Nov 02 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 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
用PHP为SHOPEX增加日志功能代码
2010/07/02 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
JS验证不重复验证码
2017/02/10 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
JS合并两个数组的3种方法详解
2019/10/24 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python数据可视化之画图
2019/01/15 Python
python3.x实现base64加密和解密
2019/03/28 Python
Python数据正态性检验实现过程
2020/04/18 Python
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
关于递归的一道.NET面试题
2013/05/12 面试题
个人实用的自我评价范文
2013/11/23 职场文书
策划创业计划书
2014/02/06 职场文书
护士进修自我鉴定
2014/02/07 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
运动会通讯稿50字
2015/07/20 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL