elementui上传多张图片(可多选)

上传多张(可多选)

vue页面:

 <div>上传多张</div>
    <br />
    <el-upload
      :action="uploadUrl"
      :on-remove="handleRemove"
      :before-remove="beforeRemove"
      multiple   //多选
      :limit="3"  //限制了只能3三图片
      :on-exceed="handleExceed"   //文件超出个数限制时的钩子
      :file-list="fileList"   
      :before-upload="beforeUp"  //上传文件之前的钩子最常用的,用来控制文件上传前的格式,或者文件大小等属性的校验,也可以进行文件的上传
      list-type="picture-card"
    >
    <i class="el-icon-plus"></i>
</el-upload>

data里面:

 data() {
    return {
      fileList: [],
      uploadUrl: "",//上传文件的接口地址
      imageUrl: "",
    };
  },

methods里面:

 //限制上传文件的个数提示
handleExceed(files, fileList) {
   this.$message.warning(
     `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
      files.length + fileList.length
   } 个文件`);
},
//删除之前执行的方法
beforeRemove(file, fileList) {
   return this.$confirm(`确定移除 ${file.name}`);
},
 
 //文件删除的方法
 handleRemove(file, fileList) {
   //此处elementui会自动去掉删除的图片,fileList数组会自动清楚删除的图片的地址
   //所以fileList就是删除成功之后的数组,不需要在进行任何处理
   console.log(file, fileList);
   this.fileList = fileList;
},
    
 /* 上传 */
beforeUp(file) {
	var formData = new FormData();
    formData.append("file", file);  //file是上传的文件
    //调用上传接口xxxxx接口地址
    this.$http.post("xxxxx", formData).then((res) => {
      console.log(res);//可获取上传成功返回的地址(图片地址)
      //yyyyy保存接口
      return this.$http.post("yyyyy", {
        ImageUrl: res.data,
      });
    });
 },
要使用 Element UI 实现图片列表并允许多选图片,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了 Element UI。你可以通过 npm 或 yarn 进行安装: ``` npm install element-ui --save ``` 或者 ``` yarn add element-ui ``` 2. 在你的项目中引入 Element UI 的样式和组件。你可以在 main.js 文件中添加以下代码: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 接下来,创建一个图片列表组件,可以使用 Element UI 的 `el-upload` 和 `el-image` 组件。在你的组件模板中添加以下代码: ```html <template> <div> <el-upload action="/upload" :multiple="true" :on-change="handleImageChange" > <el-button type="primary">点击上传</el-button> </el-upload> <div v-if="imageList.length > 0"> <el-image v-for="(image, index) in imageList" :key="index" :src="image.url"></el-image> </div> </div> </template> <script> export default { data() { return { imageList: [] } }, methods: { handleImageChange(fileList) { this.imageList = fileList.map(file => ({ url: URL.createObjectURL(file.raw) })) } } } </script> ``` 在上面的代码中,我们使用了 `el-upload` 组件来实现文件上传功能,并设置 `multiple` 属性为 true,以允许多选图片。当图片列表发生变化时,我们使用 `el-image` 组件来显示图片。 4. 最后,在你的路由或其他组件中使用这个图片列表组件: ```html <template> <div> <image-list></image-list> </div> </template> <script> import ImageList from './ImageList.vue' export default { components: { ImageList } } </script> ``` 这样,你就可以使用 Element UI 实现图片列表并允许多选图片了。当你选择图片后,它们将显示在页面上。记得根据你的项目需求修改代码,并适配你的后端服务来处理上传图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值