我是一个兼职后端的前端程序员。

我用laravel写了一套微信公众平台管理系统。有一个需求是,切换了开发模式之后,要将一些需要自动回复的图片先push到微信自己的服务器上,换回media_id,然后用户发关键字给公众号的时候,使用media_id来请微信返回这张图片。

在控制台直接敲curl命令很简单:

curl -F media={real_path}/xxx.jpg "https://api.weixin.qq.com/cgi-bin/media/upload?access_token={Token}&type=image"

但是用php发curl请求的时候,却一直internel error 500。

当时我是这样写的:

$data = array( 'media'=> "@{$imgUrl}" );

$ch1 = curl_init();

$timeout = 5;

curl_setopt ( $ch1, CURLOPT_URL, $url );

curl_setopt ( $ch1, CURLOPT_POST, 1 );

curl_setopt ( $ch1, CURLOPT_RETURNTRANSFER, 1 );

curl_setopt ( $ch1, CURLOPT_CONNECTTIMEOUT, $timeout );

curl_setopt ( $ch1, CURLOPT_SSL_VERIFYPEER, FALSE );

curl_setopt ( $ch1, CURLOPT_SSL_VERIFYHOST, false );

curl_setopt ( $ch1, CURLOPT_POSTFIELDS, $data );

$result=curl_exec($ch1);

curl_close($ch1);

在发现错误之后我进行了一些其他测试,发现传数据没问题,但文件一直不行。

接下来我在stackoverflow上看到了一篇文章:sending images via curl fails。蒙b的我直到第二天重新看才发现了一个新的对象:\CURLFile。

这是什么?接下来在segmentdefault上看到,有大神也踩了和我一样的坑。

好了,看完之后我们明白了file传不了的原因:php版本不兼容.....

代码里的$data改成这样:

$data = array( 'media'=> new \CURLFile( $imgUrl ) );

没事不要读PHP的官方中文文档!版本跟不上坑死你!

php把服务器文件curl提交,php中使用curl进行文件上传的巨坑相关推荐

  1. php 上传word文件 源码,THINKPHP中word文档的上传与下载

    点击上传按钮 控制器public function uplo(){ $gid=I('get.id'); // var_dump($gid);die; $this->assign('GID',$g ...

  2. linux的ftp轮询上传文件,Android中实现异步轮询上传文件

    前言 前段时间要求项目中需要实现一个刷卡考勤的功能,因为涉及到上传图片文件,为加快考勤的速度,封装了一个异步轮询上传文件的帮助类 效果 先上效果图 设计思路 数据库使用的框架是GreenDao,一个非 ...

  3. Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)...

    本文转自博客:https://blog.csdn.net/black_3717/article/details/79769406 问题背景: 之前给客户部署我们一款EasyDSS云平台(配合EasyN ...

  4. win7搜索文件怎么搜索文件名中带圆括号的文件?

    win7搜索文件怎么搜索文件名中带圆括号的文件? System.FileName:~="(" 这样就行. 括号上加个引号 ~= 是包含的意思, ~< 是以什么为开头, = 是 ...

  5. IDEA中Spring MVC实现图片上传并显示

    我们都知道web项目需要部署到tomcat服务器中运行 那么,我们又是如何通过tomcat来访问存放在本地磁盘中的图片呢?,通过tomcat访问本地图片,需要配置虚拟路径,下面介绍两种配置虚拟路径的方 ...

  6. 调用android的拍照或本地相册选取再实现相片上传服务器,Android调用系统相机、本地相册上传图片(头像上传(裁剪)、多张图片上传)...

    开发中基本上都会有头像上传的功能,有的app还需要多张图片同时上传,下面简单将头像上传以及多张图片上传功能整理一下.图片选择仿照微信选择图片的界面.[参考] 多图片选择器 !!!推荐一个动态权限请求的 ...

  7. java ftp ftpclient_详解JAVA中使用FTPClient工具类上传下载

    详解JAVA中使用FTPClient工具类上传下载 在Java程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件.本文简单介绍如何利用jakarta commons中的FTPClie ...

  8. window linux上传文件命令,windows通过cmd命令行使用sftp上传文件至linux

    一问:sftp是什么? sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性.下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作. ...

  9. java多图片上传插件,Bootstrap中的fileinput 多图片上传及编辑功能

    Bootstrap中的fileinput 多图片上传及编辑功能 2019-01-01 编程之家收集整理的这篇文章主要介绍了Bootstrap中的fileinput 多图片上传及编辑功能,编程之家小编觉 ...

最新文章

  1. 【Qt】ubuntu QtCreator的pro文件中使用pkg-config
  2. linux线程函数大全
  3. java multivaluemap_java – 使用自定义值集合类型创建Commons Collections MultiValueMap
  4. Scala具体解释---------Scala是什么?可伸展的语言!
  5. java流与文件——内存映射文件
  6. asyncio oracle 异步,带有asyncio futures和RuntimeError的InvalidStateError与aiohttp时使用期货回调...
  7. Mybatis(13)动态sql语句if/where/foreach
  8. django-自定义错误页面-404
  9. angularjs源码笔记(4)--scope
  10. 熊猫烧香系列变种分析报告
  11. 码支付(php版本)应用
  12. 2018java程序员面试题整理
  13. 一位考研党亲自整理的大学计算机网络基础知识总结(不看后悔版)
  14. MeGui原滤镜使用心得
  15. 安卓抓jdwskey
  16. 开源 | 携程机票BDD UI Testing框架 - Flybirds
  17. cURL error 77: error setting certificate verify locations: CAfile: d:\cacert.pem CApath: none (see h
  18. 计算机理论什么是信道容量,信道容量
  19. Conflux 生态项目扶持计划首批扶持项目出炉
  20. google play直接下载apk安装包文件教程(blynk)

热门文章

  1. web前端开发技术要求会什么
  2. 矩阵的“之”字形打印
  3. 阐述简称PO,VO,TO,BO,DAO,POJO
  4. openwrt拦截snmp报文
  5. Linux串口编程(中断方式和select方式)
  6. jquery attr
  7. 系统集成资质培训 - 2013下半年系统集成资质申报及集成资质考试
  8. Linux下文件系统目录结构
  9. SWF反编译软件Action Script Viewer ASV2011/06发布
  10. 如何安全地迁移到Exchange 2003?