搜尋
首頁後端開發php教程微信小程式開發遇到無法上傳解決方法詳解

微信小程式開發遇到無法上傳解決方法詳解

Mar 14, 2018 pm 05:00 PM
小程式程式開發解決

這篇文章講述了微信小程式開發遇到無法上傳解決辦法,大家對微信小程式開發遇到無法上傳解決辦法不了解的話或對微信小程式開發遇到無法上傳解決辦法感興趣的話那麼我們就一起來看看本篇文章吧, 好了廢話少說進入正題吧!

微信小程式 wx.uploadFile無法上傳解決方案

#微信安卓客戶端無法使用wx.uploadFile上傳檔案的問題有不少開發者都遇到。

我也因為一直無法解決,硬著頭皮提交審核最後被拒(抱著審核者最好用iOS檢測的心態,不巧審核我應用的用的是安卓),才嘗試用第三方的手段解決。

最終我是用了七牛第三方儲存的方式,將檔案直接上傳至七牛的儲存的空間上再回調使用。

當然像又拍雲,萬象優圖這些第三方儲存來源都可以採用這種想法。

首先是將七牛的https上傳網域放進小程式的網域名單中。

這裡我使用的是七牛華東區的網域https://up.qbox.me。

微信小程式wx.uploadFile採用的是multipart/form-data方式上傳,也就是表單上傳。

根據七牛的官方文件說明 http://developer.qiniu.com/docs/ ... up/form-upload.html

主要需要的就是file(檔案本身)和token(上傳憑證)。

然後在服務端部署取得上傳憑證的業務代碼,透過wx.request請求取得token。

var that = this;
 
wx.request({
 
 url: 'https://xxx/token',
 
 method: 'POST',
 
 data: {},
 
 header: {
 
  'content-type':'application/x-www-form-urlencoded'
 
 },
 
 success: function(res) {
 
   that.token = res.data; //默认返回一个token,赋值给已经有的token属性。这里只是示例,具体根据需求可自行设定。
 
 },
 
 fail:function (res) {
 
  console.log(res)
 
 }
 
})

 具體如何部署七牛憑證程式碼,可參考http://78re52.com1.z0.glb.cloudd ... %9C%8D%E5%8A%A1.pdf

#取得憑證後就可以透過wx.uploadFile上傳了。具體程式碼為:

var that = this;
 
 var key = Math.random().toString(36).substr(2); //生成一个随机字符串的文件名
 
 wx.uploadFile({
 
  url: 'https://up.qbox.me',
 
  filePath: flie,
 
  name: 'file',
 
  formData:{
 
   'token': that.token,//刚刚获取的上传凭证
 
   'key': key//这里是为文件设置上传后的文件名
 
  },
 
  success: function(r){
 
   var data = r.data;//七牛会返回一个包含hash值和key的JSON字符串
 
   if(typeof data==='string')data = JSON.parse(data.trim());//解压缩
 
   if(data.key){
 
    ... //这里就可以直接使用data.key,文件已经上传成功可以使用了。如果是图片也可以直接通过image调用。
 
   }
 
  },
 
  fail:function (res) {
 
   console.log(res)
 
  }
 
 })

最終採用這種方式解決了安卓無法上傳檔案的問題,當然上傳自身伺服器的問題還是有待解決。

不過對於急需解決方案的開發者還是提供了一個可行的方案。

現在利用第三方圖源或儲存來源是一個普遍的方案,許多儲存來源例如七牛,又拍雲,萬象優圖都提供了免費的空間供開發者使用。

建議大家也多做這方面的架構和嘗試。

相關推薦:

#

微信小程式開發中的Post請求詳解

#微信小程式實作下拉載入和上拉刷新詳細講解

#

以上是微信小程式開發遇到無法上傳解決方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
您如何在PHP中創建和使用接口?您如何在PHP中創建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解釋瞭如何創建,實施和使用PHP中的接口,重點關注其對代碼組織和可維護性的好處。

crypt()和password_hash()有什麼區別?crypt()和password_hash()有什麼區別?Apr 30, 2025 pm 03:39 PM

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

如何防止PHP中的跨站點腳本(XSS)?如何防止PHP中的跨站點腳本(XSS)?Apr 30, 2025 pm 03:38 PM

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。

PHP中的自動加載是什麼?PHP中的自動加載是什麼?Apr 30, 2025 pm 03:37 PM

自動加載PHP會在需要時自動加載類文件,從而通過減少內存使用和增強代碼組織來提高性能。最佳實踐包括使用PSR-4和有效組織代碼。

什麼是PHP流?什麼是PHP流?Apr 30, 2025 pm 03:36 PM

PHP流通過一致的API來統一資源諸如文件,網絡插座和壓縮格式之類的處理,從而使復雜性抽象並增強代碼靈活性和效率。

可以使用PHP上傳的文件的最大大小是多少?可以使用PHP上傳的文件的最大大小是多少?Apr 30, 2025 pm 03:35 PM

本文討論了在PHP中管理文件上傳大小的管理,重點是2MB的默認限制以及如何通過修改PHP.INI設置來增加它。

PHP中的無效類型是什麼?PHP中的無效類型是什麼?Apr 30, 2025 pm 03:34 PM

本文討論了PHP 7.1中引入的PHP中的無效類型,允許變量或參數為指定類型或NULL。它突出顯示了諸如提高可讀性,類型安全性和明確意圖的好處,並解釋瞭如何聲明

unset()和unlink()函數之間有什麼區別?unset()和unlink()函數之間有什麼區別?Apr 30, 2025 pm 03:33 PM

本文討論了unset()和unlink()功能在編程中的差異,重點關注其目的和用例。 unset()從內存中刪除變量,而unlink()從文件系統中刪除文件。兩者都對效率至關重要

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具