一、题目实现文件下载的封装二、设计思路通过io流中学习的文件读取输出结合servlet中的响应完成文件下载的封装在使用时通过getParameter()方法来获取path,最终完成下载。三、实现代码/** * 实现文件下载 */publicclassFileTools{publicstaticvoiddownload(String path,HttpServletResponse response)throwsIOException{//根据给定的路径获取文件对象(需要被传输到客户端的文件)File filenewFile(path);String namefile.getName();// 1.获取需要传输的文件的输入流InputStream isnewFileInputStream(path);// 2.获取response对象的输出流OutputStream osresponse.getOutputStream();// 将文件名使用URL编码防止客户端下载出现乱码nameURLEncoder.encode(name,utf-8);// 设置响应头的响应内容类型response.setHeader(content-disposition,inline;filenamename);// 3.读取输入流中的内容并通过输出流输出byte[]bnewbyte[1024];intlen0;while((lenis.read(b))!-1){os.write(b,0,len);}is.close();os.close();}}/** * Servlet implementation class DownloadServlet */WebServlet(/download)publicclassDownloadServletextendsHttpServlet{privatestaticfinallongserialVersionUID1L;protectedvoiddoPost(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{doGet(request,response);}protectedvoiddoGet(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{String namerequest.getParameter(fname);//获取需要传输到客户端的文件路径String pathd:/fileserver/File.separatorname;FileTools.download(path,response);}}
博客5
一、题目实现文件下载的封装二、设计思路通过io流中学习的文件读取输出结合servlet中的响应完成文件下载的封装在使用时通过getParameter()方法来获取path,最终完成下载。三、实现代码/** * 实现文件下载 */publicclassFileTools{publicstaticvoiddownload(String path,HttpServletResponse response)throwsIOException{//根据给定的路径获取文件对象(需要被传输到客户端的文件)File filenewFile(path);String namefile.getName();// 1.获取需要传输的文件的输入流InputStream isnewFileInputStream(path);// 2.获取response对象的输出流OutputStream osresponse.getOutputStream();// 将文件名使用URL编码防止客户端下载出现乱码nameURLEncoder.encode(name,utf-8);// 设置响应头的响应内容类型response.setHeader(content-disposition,inline;filenamename);// 3.读取输入流中的内容并通过输出流输出byte[]bnewbyte[1024];intlen0;while((lenis.read(b))!-1){os.write(b,0,len);}is.close();os.close();}}/** * Servlet implementation class DownloadServlet */WebServlet(/download)publicclassDownloadServletextendsHttpServlet{privatestaticfinallongserialVersionUID1L;protectedvoiddoPost(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{doGet(request,response);}protectedvoiddoGet(HttpServletRequest request,HttpServletResponse response)throwsServletException,IOException{String namerequest.getParameter(fname);//获取需要传输到客户端的文件路径String pathd:/fileserver/File.separatorname;FileTools.download(path,response);}}