java项目路径下存放个固定excel文件现在需要需要写个下载功能把excel文件返回给浏览器用java实现
以下是一个使用Java实现下载功能的示例代码:
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String fileName = "example.xlsx"; // 要下载的文件名
// 获取文件的绝对路径
ServletContext context = getServletContext();
String filePath = context.getRealPath("/path/to/excel/" + fileName);
// 设置文件MIME类型
String mimeType = context.getMimeType(filePath);
if (mimeType == null) {
mimeType = "application/octet-stream";
}
// 设置Content-Disposition
response.setContentType(mimeType);
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
// 缓冲区大小
int bufferSize = 4096;
// 读取要下载的文件,并写入输出流
try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(filePath));
OutputStream out = response.getOutputStream();
BufferedOutputStream bout = new BufferedOutputStream(out)) {
byte[] buffer = new byte[bufferSize];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
bout.write(buffer, 0, bytesRead);
}
}
}
}
要使用该功能,您需要将上述代码放入一个名为"DownloadServlet.java"的Java类文件中,并将文件名"example.xlsx"替换为您要下载的Excel文件的文件名。然后,您需要将该类文件部署到您的Java项目的适当位置,并在您的应用程序的web.xml文件中配置该Servlet。
此Servlet会将指定的Excel文件作为附件发送给浏览器,浏览器将自动下载该文件
原文地址: http://www.cveoy.top/t/topic/ieBm 著作权归作者所有。请勿转载和采集!