You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ant-design-vue/components/upload/demo/fileList.md

1.9 KiB

#### 完全控制的上传列表 使用 `fileList` 对列表进行完全控制,可以实现各种自定义功能,以下演示三种情况: 1) 上传列表数量的限制。 2) 读取远程路径并显示链接。 3) 按照服务器返回信息筛选成功上传的文件。 #### Complete control over file list You can gain full control over filelist by configuring `fileList`. You can accomplish all kinds of customed functions. The following shows three circumstances: 1) limit the number of uploaded files. 2) read from response and show file link. 3) filter successfully uploaded files according to response from server.
<template>
  <a-upload action="//jsonplaceholder.typicode.com/posts/" :multiple="true" :fileList="fileList" @change="handleChange">
    <a-button>
      <a-icon type="upload" /> Upload
    </a-button>
  </a-upload>
</template>
<script>
export default {
  data () {
    return {
      fileList: [{
        uid: -1,
        name: 'xxx.png',
        status: 'done',
        url: 'http://www.baidu.com/xxx.png',
      }],
    }
  },
  methods: {
    handleChange(info) {
      let fileList = info.fileList;

      // 1. Limit the number of uploaded files
      //    Only to show two recent uploaded files, and old ones will be replaced by the new
      fileList = fileList.slice(-2);

      // 2. read from response and show file link
      fileList = fileList.map((file) => {
        if (file.response) {
          // Component will show file.url as link
          file.url = file.response.url;
        }
        return file;
      });

      // 3. filter successfully uploaded files according to response from server
      fileList = fileList.filter((file) => {
        if (file.response) {
          return file.response.status === 'success';
        }
        return true;
      });

      this.fileList = fileList
    },
  },
}
</script>