## 上傳
### 一.了解wx.chooseImage(OBJECT)

### 二.代碼編程
在pages文件里面創建uploadimg文件夾
#### 1.編寫頁面結構:uploadimg.wxml
<span style="font-family:Comic Sans MS;font-size:18px;color:#333333;"><view class="container" style="padding:1rem;">
<button type="primary"bindtap="chooseimage">獲取圖片</button>
<image src="{{tempFilePaths }}" mode="aspecFill" style="width: 100%; height: 450rpx;margin:1rem 0;"/>
</view></span>

#### 2.設置數據:uploadimg.js
//獲取應用實例
var app = getApp()
Page({
data: {
tempFilePaths: '',
},
/**
* 上傳圖片
*/
chooseimage: function () {
var _this = this;
wx.chooseImage({
count: 1, // 默認9
// 可以指定是原圖還是壓縮圖,默認二者都有
sizeType: ['original', 'compressed'],
// 可以指定來源是相冊還是相機,默認二者都有
sourceType: ['album', 'camera'],
// 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標簽的src屬性顯示圖片
success: function (res) {
_this.setData({
tempFilePaths:res.tempFilePaths
})
}
})
}
})

### wx.uploadFile(OBJECT)
將本地資源上傳到開發者服務器,客戶端發起一個 HTTPS POST 請求,其中 content-type 為 multipart/form-data 。使用前請先閱讀說明。
如頁面通過 wx.chooseImage 等接口獲取到一個本地資源的臨時文件路徑后,可通過此接口將本地資源上傳到指定服務器。
OBJECT參數說明:

success返回參數說明:

基礎庫 1.4.0 開始支持,低版本需做兼容處理
返回一個 uploadTask 對象,通過 uploadTask,可監聽上傳進度變化事件,以及取消上傳任務。
### uploadTask
uploadTask 對象的方法列表:

onProgressUpdate 返回參數說明:

示例代碼:
const uploadTask = wx.uploadFile({
url: 'http://example.weixin.qq.com/upload', //僅為示例,非真實的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData:{
'user': 'test'
},
success: function(res){
var data = res.data
//do something
}
})
uploadTask.onProgressUpdate((res) => {
console.log('上傳進度', res.progress)
console.log('已經上傳的數據長度', res.totalBytesSent)
console.log('預期需要上傳的數據總長度', res.totalBytesExpectedToSend)
})
uploadTask.abort() // 取消上傳任務
## 下載
### wx.downloadFile(OBJECT)
下載文件資源到本地,客戶端直接發起一個 HTTP GET 請求,返回文件的本地臨時路徑。使用前請先閱讀說明。
OBJECT參數說明:

注:文件的臨時路徑,在小程序本次啟動期間可以正常使用,如需持久保存,需在主動調用 wx.saveFile,才能在小程序下次啟動時訪問得到。
success返回參數說明:

示例代碼:
wx.downloadFile({
url: 'https://example.com/audio/123', //僅為示例,并非真實的資源
success: function(res) {
// 只要服務器有響應數據,就會把響應內容寫入文件并進入 success 回調,業務需要自行判斷是否下載到了想要的內容
if (res.statusCode === 200) {
wx.playVoice({
filePath: res.tempFilePath
})
}
}
})
返回值:
基礎庫 1.4.0 開始支持,低版本需做兼容處理
返回一個 downloadTask 對象,通過 downloadTask,可監聽下載進度變化事件,以及取消下載任務。
### downloadTask
downloadTask 對象的方法列表:

onProgressUpdate 返回參數說明:

示例代碼:
const downloadTask = wx.downloadFile({
url: 'http://example.com/audio/123', //僅為示例,并非真實的資源
success: function(res) {
wx.playVoice({
filePath: res.tempFilePath
})
}
})
downloadTask.onProgressUpdate((res) => {
console.log('下載進度', res.progress)
console.log('已經下載的數據長度', res.totalBytesWritten)
console.log('預期需要下載的數據總長度', res.totalBytesExpectedToWrite)
})
downloadTask.abort() // 取消下載任務
### Bug & Tip
tip: 6.5.3 以及之前版本的 iOS 微信客戶端 header 設置無效
- 商城api接口
- 首頁數據獲取
- 分類接口
- 購物車接口
- 商品信息接口
- 搜索接口
- 訂單列表接口
- 店鋪接口
- 收藏接口
- 收貨地址接口
- 生成訂單接口
- 支付接口
- 會員中心接口
- 登錄注冊接口
- 關于我們
- 圖片上傳
- 分銷中心
- 分銷明細
- 代金券
- 平臺紅包列表
- 分銷申請列表
- 我的推廣
- 微信小程序
- 簡介
- 開發前準備
- 目錄結構介紹
- 發起請求
- 網絡請求提交表單
- 代碼及開發所遇到問題總結
- 導航跳轉時所遇到的問題
- 緩存數據與數據取得的問題
- 如何引入外部css
- 如何定義與使用全局變量
- 如何定義新的界面
- 微信小程序支付
- 小程序的手機驗證碼登錄
- 上傳,下載
- 提示框
- app.json配置
- 配置demo
- pages
- window
- tabBar
- networkTimeout
- debug
- page.json
- 緩存
- 特效
- 滑動方式
- 城市切換
- 五星好評
- Switch
- 上拉加載
- wxml 標簽
- 視圖容器
- 基礎內容
- 表單組件
- 導航
- 媒體組件
- 自定義提示框
- 小程序內訪問網頁
- 倒計時顯示
- 微信小程序,如何在返回前一個頁面時,執行前一個頁面的方法
- 在本地可以請求到數據,但手機上是請求不到的
- curl請求失敗
- 代碼同步
- 短信平臺更換