微信小程序请求服务器地址需要在微信公众平台进行配置。
一、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/video
success: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();//中断请求任务
}
});