微信企业号-上传、获取临时素材文件

(转 https://www.cnblogs.com/phonecom/p/08859d91a2dac3c409f5859dcb36cb48.html)

上传、获取临时素材文件,媒体文件类型有图片(image)、语音(voice)、视频(video),普通文件(file) ,这里以上传、下载图片为例

上传临时素材文件

根据开发文档,可以看出,需要三个参数access_token、type、media,access_token和type容易解决,media的话就要写一个表单上传过来

表单如下:

  1. <form action="<{$upload_url}>" name="file" method="POST" enctype="multipart/form-data">
  2. <input type="file" name="image_file" value="选择">
  3. <input type="submit" value="上传">
  4. </form>

表单提交后,即可开始上传

  1. private function upload_image($image_file) {
  2. $access_token = $this->get_access_token($this->corpid, $this->corpsecret);
  3. $type = ‘image‘;
  4. //这里是个坑,临时文件不能上传,需要保存到某个路径下再上传
  5. $upload_dir = SYSTEM_DATA . "upload/test/";
  6. !is_dir($upload_dir) and mkdir($upload_dir, 0755, true);
  7. $file_path = $upload_dir . $image_file["name"];
  8. //这里用move_uploaded_file也可以
  9. copy($image_file["tmp_name"], $file_path);
  10. $post_data = array(
  11. //这里是个坑,要在前面加@(@是禁止将字符串中的斜杠解释为转义字符)
  12. "media" => "@" . $file_path,
  13. );
  14. $url = ‘https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=‘ . $access_token . ‘&type=‘ . $type;
  15. $array_result = json_decode($this->https_request($url, $post_data), TRUE);
  16. return $array_result[‘media_id‘];
  17. }

获取临时素材文件

根据开发文档,可以看出,需要两个参数access_token和media_id,media_id就是上面上传时返回的media_id

  1. private function download_image($media_id) {
  2. $access_token = $this->get_access_token($this->corpid, $this->corpsecret);
  3. $url = ‘https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=‘ . $access_token . ‘&media_id=‘ . $media_id;
  4. $a = file_get_contents($url);
  5. //以读写方式打开一个文件,若没有,则自动创建
  6. $download_dir = SYSTEM_DATA . "download/test";
  7. !is_dir($download_dir) and mkdir($download_dir, 0755, true);
  8. $resource = fopen($download_dir."/$media_id.jpg" , ‘w+‘);
  9. //将图片内容写入上述新建的文件
  10. fwrite($resource, $a);
  11. //关闭资源
  12. fclose($resource);
  13. }

原文地址:https://www.cnblogs.com/alexguoyihao/p/9259002.html

时间: 2024-11-01 09:56:32

微信企业号-上传、获取临时素材文件的相关文章

Java企业微信开发_07_素材管理之上传本地临时素材文件

一.本节要点 1.临时素材有效期 media_id是可复用的,同一个media_id可用于消息的多次发送(3天内有效) 2.上传文件时的http请求里都有啥 具体原理可参看: 为什么上传文件的表单需要设置enctype="multipart/form-data" (http://blog.csdn.net/mazhibinit/article/details/49667511) 3.上传本地临时素材到微信服务器的流程 (1)建立与微信服务器的网络连接 (2)从连接中获取输出流(写入微信

微信企业号上传媒体文件之服务器文件上传

微信企业号上传媒体文件之服务器文件上传 企业在使用接口时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的. 通过接口https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE,企业可以上传多媒体文件. 注意,每个多媒体文件(media_id)会在上传到微信服务器3天后自动删除,以节省服务器资源. 通常文件上传是通过html表单进行的,通过HttpURLConn

微信企业号上传媒体文件之本地文件上传

微信企业号上传媒体文件之本地文件上传 企业在使用接口时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的. 通过接口https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE,企业可以上传多媒体文件. 注意,每个多媒体文件(media_id)会在上传到微信服务器3天后自动删除,以节省服务器资源. 通常文件上传是通过html表单进行的,通过HttpURLConne

微信企业号上传下载多媒体文件接口详解演示-java

讲完这篇博客,微信企业号的接口就说完了,下载了我源码的童鞋都知道,里面的备注很详细,但凡看过几遍就都会自己开发了,我说的这些接口至此我已经全部开发完了,剩下的就是你们自己写功能了,都是轻而易举的事情了,我可能后期会主要放在Android上了,届时欢迎大家进来一起探讨,一起学习噢,谢谢 企业在使用接口时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的.通过本接口,企业可以上传或下载多媒体文件. 注意,每个多媒体文件(media_id)会在上传到微信服务器3天后自动删除,

C# 调用微信接口上传素材和发送图文消息

using Common;using Newtonsoft.Json.Linq;using System;using System.IO;using System.Net;using System.Text; /// <summary> /// 调用微信接口凭证access_token /// </summary> private static string test_access_token { get { return "XXXXXXXXXXXX"; } }

Js获取file上传控件的文件路径总结

总结一个获取file上传控件文件路径的方法 firefox由于保护机制只有文件名,不能获取完整路径. document.getElementById('file').onchange = function(){ alert(getFullPath(this)) } function getFullPath(obj){ if(!obj){return;} if(!-[1,]){obj.select();return document.selection.createRange().text;} r

微信公众平台前端人员对接(微信拍照上传)

前言: 1.本篇主要介绍前端如何对接微信公众平台 2.示例选取微信拍照上传 3.微信JS-SDK说明文档 4.企业号开发者中心 5.请一定要确认自己的帐号类型是否拥有使用微信某项功能的权限,要不然方法回调不起作用 6.企业号对接功能检测图如下: 步骤: 1.确认设置安全域名(设置后,可在该域名下进行测试) 2.获取到AppID和AppSecret 3.通过AppID和AppSecret得到access_token a.请求方式get b.请求链接https://api.weixin.qq.com

PHP核心编程--文件上传(包含多文件上传)

一.单文件上传 图片上传界面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form name='frm'action="./uploadSave.php" method="p

PHP上传(单个)文件示例

通过 PHP,可以把文件上传到服务器. 创建一个文件上传表单 允许用户从表单上传文件是非常有用的. 请看下面这个供上传文件的 HTML 表单: <html> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="attach_file">File