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 MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 PHP
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
Feb 15 PHP
php文件缓存类用法实例分析
Apr 22 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
php compact 通过变量创建数组
Nov 15 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
php获得刚插入数据的id 的几种方法总结
May 31 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者的疑难问答(2)
2006/10/09 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
php获取图片信息的方法详解
2015/12/10 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
jquery提示 &quot;object expected&quot;的解决方法
2009/12/13 Javascript
IE6下通过a标签点击切换图片的问题
2010/11/14 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
详解Angularjs 自定义指令中的数据绑定
2018/07/19 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
python实现根据图标提取分类应用程序实例
2014/09/28 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python 隐藏输入密码时屏幕回显的实例
2019/02/19 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
django框架auth模块用法实例详解
2019/12/10 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
2020/07/06 Python
python Xpath语法的使用
2020/11/26 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
HTML5全屏(Fullscreen)API详细介绍
2015/04/24 HTML / CSS
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
大学生演讲稿范文
2014/01/11 职场文书
销售岗位职责范本
2014/06/12 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript