欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > vant多图片压缩上传

vant多图片压缩上传

2025/3/14 20:41:06 来源:https://blog.csdn.net/liuzaixi/article/details/145613731  浏览:    关键词:vant多图片压缩上传

在使用 Vant 组件库进行多图片压缩上传的功能时,你可以结合使用 Vant 的 Uploader 组件和第三方 JavaScript 库(如 compressorjs)来实现。这里我将详细介绍如何实现这一功能。

步骤 1: 安装必要的库

npm install vant@next
npm install compressorjs
npm install axios

步骤 2: 在你的 Vue 组件中引入 Vant 和 CompressorJS

import { Uploader } from 'vant';
import Compressor from 'compressorjs';
import 'vant/lib/index.css'; // 确保引入了 Vant 的 CSS

 步骤 3: 在 Vue 组件中使用

<template><van-uploader :after-read="handleAfterRead" multiple />
</template><script>
export default {methods: {async handleAfterRead(file) {const compressedFiles = [];for (let i = 0; i < file.length; i++) {new Compressor(file[i].file, {quality: 0.6, // 压缩质量,范围是0到1convertToWebp: false, // 是否转换为webp格式,根据需要设置success: (compressedResult) => {compressedFiles.push(compressedResult); // 将压缩后的文件添加到数组中if (compressedFiles.length === file.length) { // 确保所有文件都处理完毕后再进行下一步操作this.uploadImages(compressedFiles); // 上传压缩后的图片}},error(err) {console.error('压缩失败', err.message);},});}},uploadImages(files) {// 这里实现图片上传的逻辑,例如使用axios上传到服务器// 示例代码:// files.forEach(file => {//   const formData = new FormData();//   formData.append('image', file); // 根据后端接口要求修改字段名和文件添加方式//   axios.post('你的上传接口地址', formData, {//     headers: { 'Content-Type': 'multipart/form-data' }//   }).then(response => {//     console.log('上传成功', response);//   }).catch(error => {//     console.error('上传失败', error);//   });// });}}
};
</script>

注意:

1、文件上传要将headers的 'Content-Type'改为 'multipart/form-data' ,且后端也是用form-data接收

2、multiple属性是控制是否多图片上传

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词