为简单起见,下面代码只包含Servlet中的service方法。

Java代码 复制代码 收藏代码
  1. public void service(HttpServletRequest request, HttpServletResponse response)
  2. throws ServletException, IOException
  3. {
  4.  
  5. // 获取文件路径
  6. String filePath = "/files/music/More Than I Can Say.mp3";
  7. String realFilePath = this.getServletContext().getRealPath(filePath);
  8.  
  9. // 获取输入流
  10. InputStream in = new BufferedInputStream(new FileInputStream(
  11. realFilePath));
  12.  
  13. // 获取输出流
  14. ServletOutputStream out = response.getOutputStream();
  15.  
  16. // 设置文件类型
  17. response.setContentType("audio/mpeg");
  18.  
  19. // 设置浏览器处理文件的方式:p_w_upload---保存文件;inline---在浏览器中在线打开。
  20. response.setHeader("Content-Disposition", "inline;filename=" + "a.mp3");
  21.  
  22. // 缓冲区
  23. byte[] buf = new byte[1024];
  24.  
  25. // 将从文件输入流获取的字节数据,写到响应的输出流
  26. while (-1 != in.read(buf))
  27. {
  28. out.write(buf);
  29. }
  30.  
  31. // 关闭输入流和输出流
  32. in.close();
  33. out.close();
  34. }

	public void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException
	{

		// 获取文件路径
		String filePath = "/files/music/More Than I Can Say.mp3";
		String realFilePath = this.getServletContext().getRealPath(filePath);

		// 获取输入流
		InputStream in = new BufferedInputStream(new FileInputStream(
				realFilePath));

		// 获取输出流
		ServletOutputStream out = response.getOutputStream();

		// 设置文件类型
		response.setContentType("audio/mpeg");

		// 设置浏览器处理文件的方式:p_w_upload---保存文件;inline---在浏览器中在线打开。
		response.setHeader("Content-Disposition", "inline;filename=" + "a.mp3");

		// 缓冲区
		byte[] buf = new byte[1024];

		// 将从文件输入流获取的字节数据,写到响应的输出流
		while (-1 != in.read(buf))
		{
			out.write(buf);
		}

		// 关闭输入流和输出流
		in.close();
		out.close();
	}