一个公司可以备案几个网站,印发网站建设方案,电商运营怎么自学,wordpress获取本篇文章tag是什么
下载指的是将服务器端的文件保存到客户端的磁盘中
基本实现原理
根据对应的要下载的文件在服务器端找到对应的文件#xff0c;然后获取到文件流对象#xff0c;将流对象发送到客户端#xff0c;然后客户端通过对返回结果中文件流的解析#xff0c;将流对象转换成…是什么
下载指的是将服务器端的文件保存到客户端的磁盘中
基本实现原理
根据对应的要下载的文件在服务器端找到对应的文件然后获取到文件流对象将流对象发送到客户端然后客户端通过对返回结果中文件流的解析将流对象转换成相应的文件保存在客户端的磁盘中以实现下载效果
实例
% page languagejava contentTypetext/html; charsetUTF-8 pageEncodingUTF-8%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd
html
head
meta http-equivContent-Type contenttext/html; charsetUTF-8
titleInsert title here/title
/head
bodyform actionfileDownloadServlet methodpostinput typehidden namefileName valueceshixzai.txt下载文件下载测试文件input typesubmit value下载/form
/body
/html
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;WebServlet(name FileDownloadServlet, urlPatterns /fileDownloadServlet)
public class FileDownloadServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 获取下载文件名String fileName request.getParameter(fileName);fileName URLEncoder.encode(fileName, UTF-8);response.setHeader(Content-Disposition, attachment;filename fileName);// 设置一个存放下载文件的目录File file new File(F: File.separator fileName);// 想写通用的方法的话可以在这里进行文件的遍历查找InputStream input null;OutputStream output response.getOutputStream();;if (file.exists()) {input new FileInputStream(file);if (input ! null input.read() 0) {byte[] buff new byte[1024 * 5];int len 0;while ((len input.read(buff)) -1) {output.write(buff, 0, len);}} else {output.write(文件已经失效.getBytes());}}else{output.write(文件已经失效.getBytes());}if (input ! null) {input.close();}if (output ! null) {output.close();}}
}