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+mysql一个名片库程序
Oct 09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
Dec 20 PHP
php验证session无效的解决方法
Nov 04 PHP
ThinkPHP函数详解之M方法和R方法
Sep 10 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
Sep 05 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
Apache2 httpd.conf 中文版
2006/12/06 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP语法小结之基础和变量
2015/11/22 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
JavaScript 常用函数库详解
2009/10/21 Javascript
关于document.cookie的使用javascript
2010/10/29 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
javascript中typeof操作符和constucor属性检测
2015/02/26 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python中正则表达式的详细教程
2015/04/30 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Python正则表达式学习小例子
2020/03/03 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
护士自荐信怎么写
2013/10/18 职场文书
中文专业毕业生自荐信
2013/10/28 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
人事任命书范文
2014/06/04 职场文书
分居协议书范本
2014/11/03 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
PHP使用QR Code生成二维码实例
2021/07/07 PHP
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python