附件下载

下面的url是请求后端接口,返回的是二进制流,通过Blob转为blob对象,然后通过a链接的download属性,进行下载:

this.$http({
            url: url,
            method: 'POST',
            responseType: 'blob',
            data: qs.stringify(data)
          }).then(res => {
            // console.log(res)
            const link = document.createElement('a')
            const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
            link.style.display = 'none'
            link.href = URL.createObjectURL(blob)
            let num = ''
            for (let i = 0; i < 4; i++) {
              num += parseInt(Math.random() * 10)
            }
            var time = new Date()
            var year = time.getFullYear()
            var month =time.getMonth()+1 < 10 ? (0+""+(time.getMonth()+1)) : (time.getMonth()+1)
            var day = time.getDate() < 10 ? (0+''+time.getDate()) : (time.getDate())
            var dateTime = year + "" + month +""+ day
            link.setAttribute('download', '访问日志_'+ dateTime +"_"+ num + '.xlsx')
            document.body.appendChild(link)
            link.click()
            document.body.removeChild(link)
          })

this.$http({

            url: url,

            method: 'POST',

            responseType: 'blob',

            data: qs.stringify(data)

        }).then(res => {

            // console.log(res)

            const link = document.createElement('a')

     const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })  //此处写法为指定下载类型。如无指定类型下载,写法为 const blob = new Blob([res.data]) 

            link.style.display = 'none'

            link.href = URL.createObjectURL(blob)

            let num = ''

            for (let i = 0; i < 4; i++) {

              num += parseInt(Math.random() * 10)

            }

            var time = new Date()

            var year = time.getFullYear()

            var month =time.getMonth()+1 < 10 ? (0+""+(time.getMonth()+1)) : (time.getMonth()+1)

            var day = time.getDate() < 10 ? (0+''+time.getDate()) : (time.getDate())

            var dateTime = year + "" + month +""+ day

            link.setAttribute('download', '访问日志_'+ dateTime +"_"+ num + '.xlsx')

            document.body.appendChild(link)

            link.click()

            document.body.removeChild(link)

         })

可参考另外一种写法:

下面是上面转blob时,可能用到的格式:

后缀MIME Type
.docapplication/msword
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
.xlsapplication/vnd.ms-excel
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.pptapplication/vnd.ms-powerpoint
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentation
.pdfapplication/pdf

 

格式参考:链接https://tool.oschina.net/commons/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值