1. 上传文件
使用wx.uploadFile方法可以向指定的Url上传文件。该方法只有一个Object类型的参数,Object类型参数属性的描述如下所示。
url:String类型,必选,用于上传文件的服务端Url
filePath:String类型,必选,要上传文件资源的本地路径
name:String类型,必选,文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
header:Object类型,可选,HTTPS请求Header,不能设置Referer
formData:Object类型,可选,HTTPS 请求中其他额外的 form data
success: Function类型,可选,接口调用成功的回调函数
fail:Function 类型,可选,接口调用失败的回调函数
complete:Function类型,可选, 接口调用结束的回调函数(调用成功、失败都会执行)
测试wx.uploadFile方法也需要找一个https链接,如果没有,可以使用https://www.baidu.com,尽管该链接不会真正接收上传的文件,但会让wx.uploadFile方法正常执行,以便测试其中的回调函数。
下面的代码通过wx.chooseImage方法弹出一个图像选择对话框,选择图像文件后,会调用wx.uploadFile方法将该文件上传到服务端,如果上传成功,success函数会调用,并输出响应数据。
wx.chooseImage({
success: function(res) {
var tempFilePaths = res.tempFilePaths
wx.uploadFile({
url: 'https://www.baidu.com',
filePath: tempFilePaths[0],
name: 'file',
formData:{
'user': 'Bill'
},
success: function(res){
var data = res.data
console.log(data);
}
})
}
})
2. 下载文件
使用wx.downloadFile方法可以下载文件到临时路径,该方法有一个Object类型的参数,Object类型参数属性的描述如下所示。
url:String类型,必选,下载资源的Url
header:Object类型,可选, HTTPS请求Header
success: Function类型,可选,下载成功后以 tempFilePath 的形式传给页面,res = {tempFilePath: '文件的临时路径'}
fail:Function类型,可选,接口调用失败的回调函数
complete:Function类型,可选, 接口调用结束的回调函数(调用成功、失败都会执行)
同样,使用wx.downloadFile方法,也必须下载HTTPS Url指定的资源,例如,下面的代码会下载百度首页。
wx.downloadFile({
url: 'https://www.baidu.com',
success: function(res) {
// 输出下载资源存储的临时文件名
console.log( res.tempFilePath);
}
})
下载的资源会保存成临时文件,我们可以通过res.tempFilePath获取临时文件名,并做进一步处理,例如,如果下载的是视频文件,可以使用wx.playVoice方法进行播放。
执行这段代码后,会看到在Console中输出如图1所示的临时文件名。
图1 下载资源的临时文件
对本文感兴趣,可以加李宁老师微信公众号(unitymarvel):
关注 「极客起源」 公众号,获得更多免费技术视频和文章。