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 递归效率分析
Nov 24 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
jQuery获取json后使用zy_tmpl生成下拉菜单
Mar 27 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP文件上传处理案例分析
Oct 15 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
PHP 编程的 5个良好习惯
2009/02/20 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
jQuery实现伪分页的方法分享
2016/02/17 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
python语言元素知识点详解
2019/05/15 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
读群众路线心得体会
2014/03/07 职场文书
开业庆典主持词
2014/03/21 职场文书
拉拉队口号
2014/06/16 职场文书
经营理念口号
2014/06/21 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
导游词之山东孔庙
2019/11/04 职场文书
Python实现Telnet自动连接检测密码的示例
2021/04/16 Python