前端Vue项目中点击a标签实现下载文件到本地的功能

时间:2024-10-03 15:07:45

点击a标签可实现下载图片或者是文件到本地的功能

1、根据后台提供的接口url下载文件到本地

<a :href="后台给接口提供的文件的url地址">点击下载文件</a>

2、通过a标签的download属性进行下载,下载文件到本地

<a href="具体的文件的地址" download>点击下载文件</a>

①如果是图片或者是pdf文件,会直接在浏览器中打开,如果是word或者是excel文件会下载到本地

②如果download不给值,会使用默认的文件名

3、

  1. <el-dialog :model-value="isShow" title="批量上传" @close="closeDialog" width="400px">
  2. <div class="content">
  3. <div class="file-handle">
  4. <el-upload action="/roadtest/apigateway/pi-roadtest-analysis/rest/v1/roadtest/defect/import/excel" @success="uploadSuccess">
  5. <el-button type="primary">点击上传</el-button>
  6. </el-upload>
  7. <a href="#" @="getFile">下载模板文件</a>
  8. </div>
  9. <div class="status">
  10. <ul>
  11. <li v-for="(item, index) in lists" :key="" class="flex-item-center">
  12. {{ index + 1 }} {{ }}
  13. <el-icon color="#67c23a"><circle-check /></el-icon>
  14. </li>
  15. </ul>
  16. </div>
  17. </div>
  18. <template #footer>
  19. <span>
  20. <el-button type="primary" @click="closeDialog">确定</el-button>
  21. </span>
  22. </template>
  23. </el-dialog>
  1. async getFile() {
  2. const res = await getFile();
  3. if (res.status == '200') {
  4. const link = document.createElement('a');
  5. let blob = new Blob([res.data], { type: 'application/;charset=UTF-8' });
  6. let objectUrl = window.URL.createObjectURL(blob);
  7. link.href = objectUrl;
  8. link.download = 'Excel模板';
  9. const elementA = document.querySelector('.view-container');
  10. link.style.display = 'none';
  11. elementA?.append(link);
  12. link.click();
  13. elementA?.removeChild(link);
  14. window.URL.revokeObjectURL(link.href);
  15. ElMessage({
  16. message: '下载成功',
  17. type: 'success',
  18. });
  19. } else {
  20. ElMessage({
  21. message: '下载失败',
  22. type: 'error',
  23. });
  24. }
  25. },