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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
PHP中如何定义和使用常量
Feb 28 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
PHP获取当前页面URL函数实例
Oct 22 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php实现的递归提成方案实例
Nov 14 PHP
PHP引用返回用法示例
May 28 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 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
解析php中获取系统信息的方法
2013/06/25 PHP
php不用正则验证真假身份证
2013/11/06 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
2012/10/11 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
python Django 创建应用过程图示详解
2019/07/29 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
18岁生日感言
2014/01/12 职场文书
遗体告别仪式答谢词
2014/01/23 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
建设工地安全标语
2014/06/07 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
先进班组材料范文
2014/12/25 职场文书
商务宴会祝酒词
2015/08/11 职场文书
《包身工》教学反思
2016/02/23 职场文书
Python实现拼音转换
2021/06/07 Python