微信開發之上傳素材

2022-07-15 23:39:17 字數 2401 閱讀 3697

上傳**素材的

上傳其他素材

關鍵的http表單請求**

小結參考文件

**前言**:

1、 **上傳**素材的**

首先選乙個簡單的介面來做說明例子,這個上傳素材的介面在所有上傳素材的介面中是引數最簡單的,而且還單獨享用乙個url, 作為入門例子再合適不過了。

官方文件:

新增永久素材

官方給的這個介面,除了需要慣例的access_token,還需要乙個檔案的引數,一般而言,只需要乙個檔案路徑,其他檔案引數通過這個路徑獲取解析則可,做成乙個黑匣子,簡單易用。

我知道,有人就是專門找下邊的requests::request()的實現的,可在這就沒看到實現,別急,下面就有。

public function uploadnewsimage($path)

$path = realpath($path);

$post = ['media '=> '@'.$path];

$url ="";

$return = $this->requestandcheck($url, 'post', $post);

if ($return === false)

return $return;

}/**

*/public function requestandcheck($url, $method = 'get', $fields = )

$wxdata = json_decode($return, true);

if (isset($wxdata['errcode']) && $wxdata['errcode'] != 0)

if (strtoupper($method) === 'get' && empty($wxdata))

return $wxdata;

}

2、 **上傳其他素材**

1、新增永久**素材:

2、新增其他型別永久素材:

3、新增臨時素材:

1、新增永久素材

2、新增臨時素材

3、 **關鍵的http表單請求****

public static function request($url, $method = 'get', $fields = )

curl_setopt(self::$ch, curlopt_url, $url);

if ($method != 'get')

}} elseif (defined('curlopt_safe_upload'))

}curl_setopt(self::$ch, curlopt_postfields, $fields);}}

/* 關閉https驗證 */

重點分析:

/* 支援檔案上傳 */

if (class_exists('\curlfile'))

}} elseif (defined('curlopt_safe_upload'))

這裡面有個php版本的坑,5.4版本只支援用@來進行上傳檔案,5.5是個過渡版本,支援@curlfile兩種方式上傳檔案,而到了5.6,就只支援curlfile了。所以需要用相容模式來適應不同版本。

關於為什麼不用php版本號來判斷呢?你用版本號誰知道你是要來判斷啥呢?難道加個注釋?

而常量curlopt_safe_upload是用來開啟是否支援@的,當然,5.6版本設定了也沒有。

**小結**:

如果你已有上傳檔案的介面,其實這個功能不算啥,按照官方文件進行 post url 即可。如果沒有,或者沒有實現檔案上傳功能,就要對 curl 研究一下了,還要踩一下php版本的坑。。。不過對 curl 掌握就更加全面而牢固了,這難道不是我們的目的?

> 2、[multipart/form-data post檔案上傳詳解](

> 3、[php的curlopt_postfields引數使用陣列和字串的區別](

> 4、[the curlfile class](

> 5、[考慮 php 5.0~5.6 各版本相容性的 curl 檔案上傳](

-end-

微信開發之上傳素材

本文目錄 上傳 素材的 上傳其他素材 關鍵的http表單請求 小結參考文件 文中遇到諸如getaccesstoken 等關鍵函式卻沒有找到實現時,可參考前面的這兩篇文章 1 上傳 素材的 首先選乙個簡單的介面來做說明例子,這個上傳素材的介面在所有上傳素材的介面中是引數最簡單的,而且還單獨享用乙個ur...

微信素材上傳

using system using system.collections.generic using system.io using system.linq using system.net using system.text using system.web namespace w.bll.we...

微信公眾平台開發 素材管理 上傳臨時素材

介面開放許可權 素材管理介面對所有認證的訂閱號和服務號開放。post form,需使用https 引數 是否必須 說明 access token 是 呼叫介面憑證 media 是 form data中 檔案標識,有filename filelength content type等資訊 引數 描述 m...