Java Web 生成临时文件并下载(原)

时间:2025-03-25 15:36:55

概述:本文是  java 服务器端生成文件并下载的示例,并不完善,下载之后一般来说还需要删除临时文件。

注意:临时文件存放在 /WEB-INF/tmp 目录下,所以先要把  tmp 目录建起来。

Java Web 生成临时文件并下载(原)

public InputStream getDownloadTest() throws Exception
{
HttpServletRequest request = getRequest(); // 得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
String savePath = request.getServletContext().getRealPath("/WEB-INF/tmp");
logger.debug("获取到的/WEB-INF/tmp 路径=== " + savePath); File tmpDir = new File(savePath);
// 判断上传文件的保存目录是否存在
if (!tmpDir.exists() && !tmpDir.isDirectory())
{
tmpDir.createNewFile();
logger.debug(savePath + "目录不存在,需要创建。"); // 创建目录
tmpDir.mkdir();
} String fileWriteTime = DateFormat.DATE_TIME_WITHOUT_SECONDS.getCurrentDate(); String tmpFileName = savePath + "\\" + fileWriteTime + ".txt";
logger.debug("临时文件名:===" + tmpFileName); File file = new File(tmpFileName);
// 判断上传文件的保存目录是否存在
if (!file.exists())
{
file.createNewFile();
logger.debug("临时文件创建不成功。");
} FileWriter fileWriter = new FileWriter(file, true); // 流的方式
BufferedWriter bufferWriter = new BufferedWriter(fileWriter);
bufferWriter.write("文件写入时间:\r\n" + fileWriteTime);
bufferWriter.close(); // 第二种方式
/*
* PrintWriter printWriter=new PrintWriter(fileWriter);
* printWriter.println("文件写入时间:\r\n"+ fileWriteTime);
* printWriter.close();
*/ fileWriter.close(); // 返回文件
HttpServletResponse response = getResponse();
response.addHeader("Content-Disposition", "attachment;filename="
+ fileWriteTime + ".txt");
//response.setContentType("application/vnd.ms-excel;charset=gb2312"); //return new FileInputStream(file); //下面两种方式都可以
return new FileInputStream(file);
// return new FileInputStream(tmpFileName); }