【vue/uniapp】使用 uni.chooseImage 和 uni.uploadFile 实现图片上传,更换图片
时间: 2024-09-07 18:00:59 浏览: 117
uniapp多张图片上传.rar
在使用 Vue 或 UniApp 开发应用时,可以利用 uni-app 的 API uni.chooseImage 和 uni.uploadFile 来实现图片的上传和更换。下面是具体的实现步骤和代码示例:
1. 使用 uni.chooseImage 选择图片:
该方法可以弹出图片选择器,用户可以选择本地相册中的图片,或者使用相机拍摄新图片。选择图片后,会返回图片的本地文件路径。
```javascript
uni.chooseImage({
count: 1, // 默认选择1张图片
sizeType: ['compressed'], // 可以指定选择大图还是小图
sourceType: ['album', 'camera'], // 可以选择相册或相机
success: (res) => {
// 处理用户选择的图片
const tempFilePaths = res.tempFilePaths;
// 将图片路径保存,以便上传
this.selectedImage = tempFilePaths[0];
},
fail: (err) => {
// 处理错误情况
console.error(err);
}
});
```
2. 使用 uni.uploadFile 上传图片:
得到图片的本地文件路径后,使用 uni.uploadFile 方法将图片上传到服务器。该方法会返回一个上传任务 ID,可以通过这个 ID 监听上传进度和上传成功后的状态。
```javascript
uni.uploadFile({
url: '服务器上传接口', // 上传图片到服务器的接口地址
filePath: this.selectedImage, // 本地图片路径
name: 'file', // 上传时的文件名
success: (uploadRes) => {
// 上传成功的回调函数
const data = JSON.parse(uploadRes.data);
// 处理返回的数据,比如更新UI显示上传成功的图片等
console.log('上传结果', data);
},
fail: (err) => {
// 上传失败的回调函数
console.error('上传失败', err);
}
});
```
请注意,上传图片到服务器通常需要处理跨域问题,确保服务器端设置允许来自客户端的请求。
阅读全文