微信小程序实现文件上传主要通过以下两种方式实现,具体方法及注意事项如下:
一、使用微信小程序原生API(推荐)
-
文件选择
通过
wx.chooseImage
API 从相册或相机选择文件,返回临时路径tempFilePaths
。 -
文件上传
使用
wx.uploadFile
API 将文件上传至服务器,需传入url
(服务器接口地址)、filePath
(文件路径)、name
(服务器接收参数名)等参数。
示例代码 :
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: function(res) {
const tempFilePaths = res.tempFilePaths;
wx.uploadFile({
url: 'https://example.com/upload',
filePath: tempFilePaths,
name: 'file',
success: function(res) {
console.log('上传成功', res);
},
fail: function(err) {
console.error('上传失败', err);
}
});
}
});
二、通过H5页面实现(适用于非云存储场景)
-
H5页面搭建
创建一个支持文件上传的H5页面,使用
FormData
和XMLHttpRequest
或fetch
将文件发送至服务器。 -
小程序与H5通信
-
使用
wx.navigateTo
跳转到H5页面,并传递文件信息(如tempFilePaths
)。 -
H5页面上传完成后,通过
window.postMessage
将结果返回给小程序。
-
注意事项 :
-
上传接口需使用HTTPS协议。
-
若使用云存储(如微信云开发),需在后台配置业务域名并调用
wx.cloud.uploadFile
。 -
多文件上传可通过循环调用
wx.uploadFile
或在H5页面使用FormData.append
实现。
以上方法可根据实际需求选择,云存储方案更便捷,H5方案适合需要兼容旧版服务器的场景。