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 开源框架22个简单简介
Aug 24 PHP
php strnatcmp()函数的用法总结
Nov 27 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
php实现微信公众号无限群发
Oct 11 PHP
PHP面试题之文件目录操作
Oct 15 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
PHP简单实现上一页下一页功能示例
Sep 14 PHP
Laravel中unique和exists验证规则的优化详解
Jan 28 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
Jul 17 PHP
php 后端实现JWT认证方法示例
Sep 04 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 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
GD输出汉字的函数的分析
2006/10/09 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
2018/01/13 Javascript
vue实现lodop打印功能的示例
2020/11/11 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
详细探究Python中的字典容器
2015/04/14 Python
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
用Python获取摄像头并实时控制人脸的实现示例
2019/07/11 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
高三地理教学反思
2014/01/11 职场文书
运动会通讯稿500字
2014/02/20 职场文书
法人委托书范本格式
2014/09/15 职场文书
个人年终总结范文
2015/03/09 职场文书
教师素质教育心得体会
2016/01/19 职场文书
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python