微信提供的文件上傳方法:將本地資源上傳到服務器。客戶端發起一個 HTTPS POST 請求,其中 content-type
為 multipart/form-data
參數
Object object
屬性 | 類型 | 默認值 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|---|
url | string | 是 | 開發者服務器地址 | ||
filePath | string | 是 | 要上傳文件資源的路徑 (本地路徑) | ||
name | string | 是 | 文件對應的 key,開發者在服務端可以通過這個 key 獲取文件的二進制內容 | ||
header | Object | 否 | HTTP 請求 Header,Header 中不能設置 Referer | ||
formData | Object | 否 | HTTP 請求中其他額外的 form data | ||
timeout | number | 否 | 超時時間,單位為毫秒 | 2.10.0 | |
success | function | 否 | 接口調用成功的回調函數 | ||
fail | function | 否 | 接口調用失敗的回調函數 | ||
complete | function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
object.success 回調函數
參數
Object res
屬性 | 類型 | 說明 |
---|---|---|
data | string | 開發者服務器返回的數據 |
statusCode | number | 開發者服務器返回的 HTTP 狀態碼 |
返回值
UploadTask
基礎庫 1.4.0 開始支持,低版本需做兼容處理。
一個可以監聽上傳進度進度變化的事件和取消上傳的對象
微信官方給出的代碼如下:
wx.chooseImage({ success (res) { const tempFilePaths = res.tempFilePaths wx.uploadFile({ url: 'https://example.weixin.qq.com/upload', //僅為示例,非真實的接口地址 filePath: tempFilePaths[0], name: 'file', formData: { 'user': 'test' }, success (res){ const data = res.data //do something } }) } })
后台服務使用.NET CORE 3.1
[HttpPost("/File/WeChatFile")] public BaseOutput<string> WeChatFile() { var file = HttpContext.Request.Form.Files[0]; //do something
return new BaseOutput<string>() { Data = ""}; }
記錄:之前一直使用IFormFile 來接收文件,微信這個方法用IFormFile 接收不到,從HttpContext.Request.Form中可以接收到參數
微信服務地址:https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html