如何在web页面返回本地的文件
1首先是创建一个web项目 此处用的是springboot
2其次是添加依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
3.写一个最简单的界面 :在点击“下载文件的时候 发送我们本地的文件给用户” 注意这个文件的位置
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="test01">下载文件</a>
</body>
</html>
4.写一个controller
package org.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
@Controller
public class TextController {
@RequestMapping("/test01")
public void test01(HttpServletResponse response) throws IOException {
useResponseToReturn(response,
"TEST_rfip.doc",
"D:\\biyesheji\\rfip.doc");
//这里需要传入三个参数 第一个参数就是参数列表中的response
//第二个参数是 我要把我本地的文件返回给对方,当对方拿到我这个文件的时候,文件名是什么,注意,加后缀!
//第三个参数就是 我要发送的这个文件 在我自己电脑上的什么位置,绝对路径即可
}
/**
*
* @param response
* @param dfnddwjjsmjwjhz 对方拿到的文件叫什么加文件后缀
* @param bdwjdjddz 本地文件的绝对地址
* @throws IOException
*/
public static void useResponseToReturn(HttpServletResponse response ,
String dfnddwjjsmjwjhz,
String bdwjdjddz)
throws IOException {
/*返回文件开始*/
ServletOutputStream servletOutputStream=response.getOutputStream();
response.addHeader("Content-Disposition",
"attachment;filename="+dfnddwjjsmjwjhz);
FileInputStream pdf=new FileInputStream(bdwjdjddz);
byte[] buffer=new byte[1024];
int count;
while((count=pdf.read(buffer))!=-1){
servletOutputStream.write(buffer, 0, count);
}
servletOutputStream.flush();
servletOutputStream.close();
pdf.close();
/*返回文件 结束*/
}
}
4.运行主类 访问 http://localhost:8080/index.html 就会看到左上角的 下载文件 点击即可