从服务器指定位置下载文件

从服务器指定位置下载文件

下载文件转换成流,这里说两种流的方式:

1. 文件流
2. 字节流

一,字节流

String filePath="/opt/peoject/file/123/pdf"; //这个是你服务上存放文件位置

方法体,代码如下:

java 复制代码
public byte[] downLoadFile(String filePath) throws Exception {
        byte[] buffer = null;
        try {
            File file = new File(filePath);
            FileInputStream fis = new FileInputStream(filePath);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] b = new byte[1024];
            int n;
            while ((n = fis.read(b)) != -1) {
                bos.write(b, 0, n);
            }
            fis.close();
            bos.close();
            buffer = bos.toByteArray();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return buffer;
    }

后端 controller层:

javascript 复制代码
@PostMapping("/downLoadFile")
public byte[] downLoadFile(HttpServletRequest request,HttpServletResponse response){
    return  downLoadFile2(response,filePath);
}

前端接收处理、

参考地址:文件下载

二,文件流

javascript 复制代码
public void downLoadFile2(HttpServletResponse response,String filePath) throws Exception {
        File file = new File(filePath);
        //获取文件名称 (例如:123.pdf)
        String fileName=filePath.substring(filePath.lastIndexOf("\\"));
        InputStream inputStream = new FileInputStream(file);
        response.setContentType("application/pdf;charset=utf-8");
        response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
        IOUtils.copy(inputStream, response.getOutputStream());
        response.flushBuffer();
        inputStream.close();
    }

后端controller

java 复制代码
public void downLoadFile(HttpServletRequest request,HttpServletResponse response){
  downLoadFile2(response,filePath);
}

下载后,浏览器这里会有显示文件

相关推荐
倔强青铜三3 分钟前
WXT浏览器插件开发中文教程(8)----WXT配置详解之运行时配置
前端·javascript·vue.js
倔强青铜三12 分钟前
WXT浏览器插件开发中文教程(6)----WXT配置详解之环境变量
前端·javascript·vue.js
倔强青铜三12 分钟前
WXT浏览器插件开发中文教程(6)----WXT配置详解之自动导入
前端·javascript·vue.js
倔强青铜三28 分钟前
WXT浏览器插件开发中文教程(5)----WXT配置详解之浏览器启动设置
前端·javascript·vue.js
倔强青铜三40 分钟前
WXT浏览器插件开发中文教程(4)----WXT配置详解之manifest清单
前端·javascript·vue.js
郭涤生1 小时前
Chapter 3: Programming Paradigms_《clean architecture》notes
java·开发语言·c++·笔记
DataGear2 小时前
DataGear 5.3.0 制作支持导出表格数据的数据可视化看板
javascript·信息可视化·数据分析·html·echarts·数据可视化
Hanson Huang2 小时前
23种设计模式-模板方法(Template Method)设计模式
java·设计模式·模板方法模式·行为型设计模式
woai33642 小时前
设计模式-单例模式
java·开发语言·单例模式
始终奔跑在路上2 小时前
Spring Initializr搭建spring boot项目
java·开发语言·spring boot·spring·软件开发