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写的serv-u的web申请账号的程序
Oct 09 PHP
针对初学PHP者的疑难问答(2)
Oct 09 PHP
PHP 调试工具Debug Tools
Apr 30 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
PHP超级全局变量数组小结
Oct 04 PHP
php抓取页面的几种方法详解
Jun 17 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
php图片的二进制转换实现方法
Dec 15 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 PHP
PHP 实现缩略图
Mar 09 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
PHP中$_SERVER的详细参数与说明
2008/07/29 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
用javascript实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
2007/04/20 Javascript
广告切换效果(缓动切换)
2009/05/27 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
Python表示矩阵的方法分析
2017/05/26 Python
Python中super函数的用法
2017/11/17 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
简单实现Python爬取网络图片
2018/04/01 Python
python版大富翁源代码分享
2018/11/19 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
为什么称python为胶水语言
2020/06/16 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
Python中qutip用法示例详解
2020/10/02 Python
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
集团薪酬管理制度
2014/01/13 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
Consul在linux环境的集群部署
2022/04/08 Servers
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技