文件下载
文件下载

案例:
package cn.cmlx.web.servlet; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; @WebServlet("/Download1Servlet") public class Download1Servlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * 两个头一个流 1.Content-Type 2.Content-Disposition 3.流:下载文件的数据 * */ String filename = "G:/不是爱情.mp3"; String contentType = this.getServletContext().getMimeType(filename);// 通过文件名称获取MIME类型 String contentDisposition = "attachment;filename=a.mp3"; // 一个流 FileInputStream input = new FileInputStream(filename); // 设置头 response.setHeader("Content-Type", contentType); response.setHeader("content-Disposition", contentDisposition); // 获取绑定了响应端的流 ServletOutputStream output = response.getOutputStream(); IOUtils.copy(input, output);// 把输入流中的数据写入到输出流中。 input.close(); } }
下载的细节

案例:加防止乱码之后
package cn.cmlx.web.servlet; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.io.IOUtils; @WebServlet("/Download1Servlet") public class Download1Servlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { /* * 两个头一个流 1.Content-Type 2.Content-Disposition 3.流:下载文件的数据 * */ String filename = "G:/不是爱情.mp3"; //为了使下载框中显示中文名称不出乱码! String framename = new String("不是爱情.mp3".getBytes("GBK"),"ISO-8859-1"); String contentType = this.getServletContext().getMimeType(filename);// 通过文件名称获取MIME类型 String contentDisposition = "attachment;filename=a.mp3"; // 一个流 FileInputStream input = new FileInputStream(filename); // 设置头 response.setHeader("Content-Type", contentType); response.setHeader("content-Disposition", contentDisposition); // 获取绑定了响应端的流 ServletOutputStream output = response.getOutputStream(); IOUtils.copy(input, output);// 把输入流中的数据写入到输出流中。 input.close(); } }

浙公网安备 33010602011771号