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

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

小程式 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請求詳解

小程式實現下拉載入和上拉重新整理詳細講解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.