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脚本的10个技巧(4)
Oct 09 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
php空间不支持socket但支持curl时recaptcha的用法
Nov 07 PHP
PHP5函数小全(分享)
Jun 06 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
php和editplus正则表达式去除空白行
Apr 17 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
PHP简单遍历对象示例
Sep 28 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
PHP中isset、empty的用法与区别示例详解
Nov 05 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
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php实现俄罗斯乘法实例
2015/03/07 PHP
PHP常用处理静态操作类
2015/04/03 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
PDO::prepare讲解
2019/01/29 PHP
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
关于Python的一些学习总结
2018/05/25 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
python实现简单成绩录入系统
2019/09/19 Python
python根据时间获取周数代码实例
2019/09/30 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
C语言50道问题
2014/10/23 面试题
银行先进个人事迹材料
2014/05/11 职场文书
汽修专业自荐信
2014/07/07 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
创业计划书之废品回收
2019/09/26 职场文书
CSS link与@import的区别和用法解析
2023/05/07 HTML / CSS