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

**files參數說明**

success 返回參數說明

**示例**
```
uni.chooseImage({
success: function (chooseImageRes) {
const tempFilePaths = chooseImageRes.tempFilePaths;
uni.uploadFile({
url: 'https://www.example.com/upload', //僅為示例,非真實的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData: {
'user': 'test'
},
success: function (uploadFileRes) {
console.log(uploadFileRes.data);
}
});
}
});
```
**返回值**
返回一個 uploadTask 對象,通過 uploadTask,可監聽上傳進度變化事件,以及取消上傳任務。
**uploadTask 對象的方法列表**

**onProgressUpdate 返回參數說明**

**示例**
```
uni.chooseImage({
success: function (chooseImageRes) {
const tempFilePaths = chooseImageRes.tempFilePaths;
const uploadTask = uni.uploadFile({
url: 'https://www.example.com/upload', //僅為示例,非真實的接口地址
filePath: tempFilePaths[0],
name: 'file',
formData: {
'user': 'test'
},
success: function (uploadFileRes) {
console.log(uploadFileRes.data);
}
});
uploadTask.onProgressUpdate(function (res) {
console.log('上傳進度' + res.progress);
console.log('已經上傳的數據長度' + res.totalBytesSent);
console.log('預期需要上傳的數據總長度' + res.totalBytesExpectedToSend);
// 測試條件,取消上傳任務。
if (res.progress > 50) {
uploadTask.abort();
}
});
}
});
```
**uni.downloadFile(OBJECT)**
下載文件資源到本地,客戶端直接發起一個 HTTP GET 請求,返回文件的本地臨時路徑。
OBJECT 參數說明

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

示例
```
uni.downloadFile({
url: 'https://www.example.com/file/test', //僅為示例,并非真實的資源
success: function (res) {
if (res.statusCode === 200) {
console.log('下載成功');
}
}
});
```
**返回值**
返回一個 downloadTask 對象,通過 downloadTask,可監聽上傳進度變化事件,以及取消上傳任務。
**downloadTask 對象的方法列表**

**onProgressUpdate 返回參數說明**

示例
```
const downloadTask = uni.downloadFile({
url: 'http://www.example.com/file/test', //僅為示例,并非真實的資源
success: function (res) {
if (res.statusCode === 200) {
console.log('下載成功');
}
}
});
downloadTask.onProgressUpdate(function (res) {
console.log('下載進度' + res.progress);
console.log('已經下載的數據長度' + res.totalBytesWritten);
console.log('預期需要下載的數據總長度' + res.totalBytesExpectedToWrite);
// 測試條件,取消下載任務。
if (res.progress > 50) {
downloadTask.abort();
}
});
```