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 array_flip() 删除数组重复元素
Jan 14 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
php之CodeIgniter学习笔记
Jun 17 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
PHP循环函数使用介绍之PHP基础入门教程
Sep 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
利用php输出不同的心形图案
Apr 22 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
windows7配置Nginx+php+mysql的详细教程
Sep 04 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
php实现简单的权限管理的示例代码
Aug 25 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漏洞小结
2012/02/05 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
使用Apache的rewrite
2021/03/09 Servers
JS 判断代码全收集
2009/04/28 Javascript
js setattribute批量设置css样式
2009/11/26 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JS定时器实例
2013/04/17 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
JS绘图Flot如何实现动态可刷新曲线图
2020/10/16 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
解读! Python在人工智能中的作用
2017/11/14 Python
Python函数参数操作详解
2018/08/03 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
python如何统计代码运行的时长
2019/07/24 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
Theory美国官网:后现代都市风时装品牌
2018/05/09 全球购物
体育课课后反思
2014/04/24 职场文书
校园标语大全
2014/06/19 职场文书
文秘自荐信
2014/06/28 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android