vue3使用下载附件功能

该代码示例展示了如何在Vue.js应用中处理附件下载。通过axios从指定URL获取ArrayBuffer响应,然后转换为Blob对象,创建ObjectURL,最后模拟点击事件触发下载。此方法特别适用于下载Excel文件。
摘要由CSDN通过智能技术生成

效果:

点击即可以下载打开。

代码:

                      <div v-show="item.attachment.length > 0">
                        <h3>下载附件</h3>
                        <div
                          v-for="(doc, docIndex) in item.attachment"
                          :key="docIndex"
                        >
                          <a
                            style="color: #4183c4"
                            :class="['file', docIndex == 0 ? 'firstFile' : '']"
                            @click="
                              fetchExportBill(
                                `${downloadUrl}?Id=${doc.fileId}`,
                                doc.disPlayName
                              )
                            "
                            :download="doc.disPlayName"
                          >
                            <file-zip-outlined
                              style="font-size: 14px; margin-right: 5px"
                            />{{ doc.disPlayName }}
                            <!-- <a-icon type="file-zip" style="font-size: 14px; margin-right: 5px" />{{ doc.disPlayName }} -->
                          </a>
                        </div>
                      </div>

 

 

const { downloadUrl } = window.defaultconfig;
function fetchExportBill(url, name) {
  axios.get(url, { responseType: "arraybuffer" }).then((res) => {
    const blob = new Blob([res.data], { type: "application/vnd.ms-excel" });
    const objectUrl = URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.download = name;
    a.href = objectUrl;
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
  });
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值