首页 > 其他分享 >Vue 文件流预览 PDF

Vue 文件流预览 PDF

时间:2023-02-08 10:13:24浏览次数:50  
标签:Vue String 预览 url binaryData fileName PDF response id

js

// pdf 预览
export function pdfYL(foreId) {
  return request({
    url: '/bbs/regtech/law/download?id='+foreId,
    method: 'get',
    responseType: "blob",
  })
}
import { pdfYL } from "@/api/api";
export default {
  data() {
    return {
      pdfUrl: "",
      title: "",
      viewVisible: false,
    };
  },
  methods: {
    YLpdf() {
      var id = '获取到的id获传参';
        pdfYL(id).then((res) => {
        const binaryData = [];
        binaryData.push(res.data);
        let url = window.URL.createObjectURL(
          new Blob(binaryData, { type: "application/pdf" })
        );
        this.pdfUrl = url;
 
       // this.viewVisible = true;  在当前页面弹框打开
        // 新页面打开
        window.open(url);
      });
    },
  },
};

Java 文件流输出

    @Override
    public void download(HttpServletResponse response, String id) {
        LawFile lawFile = this.getById(id);
        String uploadPath = lawFile.getUploadPath();
        String fileName = lawFile.getTitle();
        try {
            // 创建输出流对象
            ServletOutputStream outputStream = response.getOutputStream();
            //以字节数组的形式读取文件
            byte[] bytes = FileUtil.readBytes(uploadPath);
            // 设置返回内容格式
            response.setContentType("application/octet-stream");
            fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");
            // 设置下载弹窗的文件名和格式(文件名要包括名字和文件格式)
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
            // 返回数据到输出流对象中
            outputStream.write(bytes);
            // 关闭流对象
            IoUtil.close(outputStream);
        } catch (Exception ignored) {
            log.error(ignored.getMessage());
        }
    }

 

标签:Vue,String,预览,url,binaryData,fileName,PDF,response,id
From: https://www.cnblogs.com/panwudi/p/17100734.html

相关文章

  • 基于vue3的跑马灯组件|vue3-marquee
    vue3-marquee是Vue3的一个简单的跑马灯组件,可以创建可定制的跑马灯效果。该组件为您的内容使用插槽,提供多种配置选项来控制跑马灯的效果。安装//npmnpminstallv......
  • vue内置指令和自定义指令
    vue内置指令常用的内置指令:v-bind:单向绑定解析表达式,可简写为:xxxv-model :双向数据绑定v-for :遍历数组/对象/字符串v-on :绑定事件监听,可简写为@v-i......
  • 集成mupdf实现手写笔签批应用
    1.首先,需要在AndroidStudio中集成mupdf,使用AndroidStudio的Gradle构建系统,可以在dependencies中添加如下依赖:implementation'com.artifex.mupdf:android:1.14.0'......
  • Vue组件间通讯方式
    总结Vue组件间通讯方式父子组件通讯父向子一般为props:在父组件内,子组件标签上写明传递参数的名字和值,在子组件内部用props声明,即可使用//子......
  • vue高级进阶( 一 ) 组件精髓概述
    前言这个系列可能会分为几部分:基础以及高级用法总结一些比较有代表性的实战源码解析(一定是用最粗俗,不对,是最通俗的语言讲解,这个我可以保证)总之一定对得起高级......
  • vue高级进阶( 二 ) 8种组件通信详解
     vue高级进阶(二)8种组件通信详解猛兽总是独行,牛羊才成群结队。-------鲁迅vue组件通信的重要性无需多言。。。但是你肯定没有全部掌握,所以这第二篇文章应运而......
  • vue高级进阶( 三 ) 组件高级用法及最佳实践
     vue高级进阶(三)组件高级用法及最佳实践世界上有太多孤独的人害怕先踏出第一步。---绿皮书书接上回,上篇介绍了vue组件通信比较有代表性的几种方法,本篇主要讲......
  • vue3 | readonly、shallowReadonly
    readonly接受一个对象(不管是响应式还是普通的)或者是一个ref,返回的是一个原值的只读代理。<template><n-elclass="h-400w-fullflexflex-coljustify-centeritems......
  • vue3 | isRef、unref、toRef、toRefs
    isRef检查某个值是否是ref。是返回true,否则返回false。constnum=ref(10);constnum1=20;constnum2=reactive({data:30});console.log(isRef(num));//tru......
  • vue3 | slots
    一、什么是插槽插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组......