php使用curl模拟浏览器表单上传文件或者图片的方法


Posted in PHP onNovember 10, 2018

前言

在浏览器使用html中的input框我们可以实现文件的上传,表单元素选用 <input type="file"> 控件,form 表单需要设置 enctype="multipart/form-data" 属性。比如:

<body>

  <form action="UploadFile.php" method="post" enctype="multipart/form-data">

  <input type="file" name="fileUpload" />

  <input type="submit" value="上传文件" />

  </form>

</body>

总有一些时候,我们需要在后台直接上传文件而不是用浏览器进行前端上传,这时候php的curl就提供了一些参数可以实现直接通过php后台上传文件。

php使用curl模拟上传文件

curl上传文件的时候,最重要的是一个“ @”符号的应用,加@符号curl就会把它当成是文件上传处理。
具体代码实例:

<?php
  header('Content-type:text/html; charset=utf-8'); //声明编码
  $ch = curl_init();
  $url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459';
  
  //post数据,使用@符号,curl就会认为是有文件上传
  $curlPost = array('Filedata'=>'@/Users/finup/Documents/11.png');
  
  
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_POST, 1); //POST提交
  curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
  $data =curl_exec($ch);
  curl_close($ch);
  echo '<pre>';
  var_dump($data);

上述代码实例中的url是处理文件上传的具体的接口,可以直接使用$_FILES来获取上传的临时文件相关信息,打印出$_FILES如下,其中数组的键“Filedata”名可以在传递参数的时候自己指定:

Array
(
[Filedata] => Array
(
[name] => 11.png
[type] => application/octet-stream
[tmp_name] => /private/var/tmp/php936cex
[error] => 0
[size] => 36663
)
)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php header()函数使用说明
Jul 10 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
PHP操作XML作为数据库的类
Dec 19 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP正则表达式笔记与实例详解
May 09 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
Laravel定时任务的每秒执行代码
Oct 22 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 PHP
safari下载文件自动加了html后缀问题
Nov 09 #PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 #PHP
PHP校验15位和18位身份证号的类封装
Nov 07 #PHP
php中如何执行linux命令详解
Nov 06 #PHP
laravel中的一些简单实用功能
Nov 03 #PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 #PHP
yii2 上传图片的示例代码
Nov 02 #PHP
You might like
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
关于jQuery object and DOM element
2013/04/15 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
vue项目中使用Svg的方法
2018/10/24 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
全球性的在线婚纱礼服工厂:27dress.com
2019/03/21 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
《母亲的恩情》教学反思
2014/02/13 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
龙门石窟导游词
2015/02/02 职场文书
英语邀请函范文
2015/02/02 职场文书
防暑降温通知书
2015/04/27 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers