文件上传下载API
- 一、wx.uploadFile文件上传API
- 二、wx.downloadFile文件下载API
微信小程序请求服务器地址需要在微信公众平台进行配置。
一、wx.uploadFile文件上传API
wx.uploadFile(object)将本地资源上传到服务器,发起一个HTTP POST请求。其中content-type为multipart/form-data。
《wx.uploadFile(object)参数说明》
字段 | 是否必填 | 数据类型 | 含义 |
---|---|---|---|
url | 是 | string | 开发者服务器URL |
filePath | 是 | string | 要上传文件资源的路径 |
name | 是 | string | 文件对应的key。开发者再服务器通过这个key可以获取到文件二进制内容。 |
header | 否 | HTTP请求header。header中不能设置refer | |
formData | 否 | HTTP请求中其他额外的form data | |
timeout | 否 | number | 超时时间,ms |
success | 是 | function | 调用成功的回调函数 |
fail | 否 | function | 调用失败的回调函数 |
complete | 否 | function | 调用结束的回调函数(成功、失败都会执行) |
<image src="{{src}}" style="width: 270px;height: 120px;"></image>
Page({onLoad:function () {wx.chooseImage({count:9,//最多可选择9张图,最多选择9张sizeType:['original','compressed'],//原图,缩略图,默认两者都有sourceType:['album','camera'],//相册,使用相机success:function (res) {var tempTilePaths = res.tempFilePaths;// 创建uploadTask对象const uploadTask = wx.uploadFile({url: 'url',filePath: tempTilePaths[0],name: 'file',header:{'content-type':'Application/json'},formData:{imgName:"",imgSize:'122kb',position:'wx',// 自定义文件存放的文件夹},success:function (res) {}})uploadTask.onHeadersReceived(function (res) {console.log("监听 HTTP Respose Header事件")})uploadTask.offHeadersReceived(function (res) {console.log("取消监听 HTTP Respose Header事件")})uploadTask.onProgressUpload(function (res) {console.log("监听上传进度变化事件")})uploadTask.offProgressUpload(function (res) {console.log("取消监听上传进度变化事件")})uploadTask.abort();//中断请求任务}})}
});
二、wx.downloadFile文件下载API
《wx.downloadFile(object)参数说明》
字段 | 是否必填 | 数据类型 | 含义 |
---|---|---|---|
url | 是 | string | 开发者服务器URL |
header | 否 | HTTP请求header。header中不能设置refer | |
timeout | 否 | number | 超时时间,ms |
filePath | 是 | string | 指定文件下载后的存储路径(本地路径) |
success | 是 | function | 调用成功的回调函数 |
fail | 否 | function | 调用失败的回调函数 |
complete | 否 | function | 调用结束的回调函数(成功、失败都会执行) |
Page({data:{src:""},onLoad:function () {var page = this;const downloadTask = wx.downloadFile({url: 'url',type: 'image',// 下载资源的类型,有效值image/audio/videosuccess:function (res) {var tempPath = res.tempFilePath;page.setData({src:tempPath});}})downloadTask.onHeadersReceived(function (res) {console.log("监听 HTTP Respose Header事件")})downloadTask.offHeadersReceived(function (res) {console.log("取消监听 HTTP Respose Header事件")})downloadTask.onProgressUpload(function (res) {console.log("监听下载进度变化事件")})downloadTask.offProgressUpload(function (res) {console.log("取消监听下载进度变化事件")})downloadTask.abort();//中断请求任务}
});