jsp文件下载功能实现代码(jsp文件名命名规范)太疯狂了

随心笔谈2年前发布 admin
190 0 0

文章摘要

这篇文章介绍了在Spring Boot框架下实现的一个下载功能Servlet(`DownloadOfServlet`)。该Servlet通过`doPost`方法接收客户端的文件上传请求,并通过`request.getSession()`获取上传路径。在`getDo`方法中,它设置了响应内容类型为`application/x-download`,并在`Content-Disposition`头中指定了下载文件的名称。随后,该Servlet通过`FileInputStream`读取文件并将其分块传输至客户端响应的缓冲输出流中。整个过程包括文件路径获取、内容类型设置、文件读写以及资源关闭等操作,确保了客户端能够下载到上传的文件。


package cn.jbit.download.servlet;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownloadOfIOServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String basePath=request.getSession().getServletContext().getRealPath(“/upload”);

String filedisplay=”helloworld.jpg”;
String filedownload=basePath + File.separator + “helloworld.jpg”;
response.setContentType(“applicaiton/x-download”);
response.addHeader(“Content-Disposition”, “attachment;filename=”+filedisplay);

InputStream is=null;
OutputStream os=null;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;

is=new FileInputStream(new File(filedownload));
bis=new BufferedInputStream(is);
os=response.getOutputStream();
bos=new BufferedOutputStream(os);

byte[] b=new byte[1024];
int len=0;
while((len=bis.read(b)) !=-1){
bos.write(b,0,len);
}

bis.close();
is.close();
bos.close();
os.close();
}
}

© 版权声明

相关文章