首页 > 编程 > JSP > 正文

jsp实现从服务器下载xls文件到客户端的方法

2024-09-05 00:22:24
字体:
来源:转载
供稿:网友

这篇文章主要介绍了jsp实现从服务器下载xls文件到客户端的方法,以完整实例形式较为详细的分析了jsp文件下载的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了jsp实现从服务器下载xls文件到客户端的方法。分享给大家供大家参考,具体如下:

参考网上的代码写了一个下载xls文件到客户端的jsp页面,只要将服务器的文件地址传给这个jsp页面就可以实现下载文件到客户端了。

 

  1. <%@ page language="java"import="java.util.*"pageEncoding="utf-8"%> 
  2. <%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core"%> 
  3. <%@ page import="java.io.*" %> 
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  5. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  6. <html xmlns="http://www.w3.org/1999/xhtml"
  7. <head> 
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  9. <link href="styles/basic.css" rel="stylesheet" type="text/css" /> 
  10. <title>download</title> 
  11. </head> 
  12. <% 
  13. response.setCharacterEncoding("gb2312"); 
  14. request.setCharacterEncoding("gb2312"); 
  15. if (request.getParameter("file") != null) { 
  16. OutputStream os = null
  17. FileInputStream fis = null
  18. try { 
  19. String file = request.getParameter("file"); 
  20. if (!(new File(file)).exists()) { 
  21. System.out.println("没有文件"); 
  22. return
  23. System.out.println("文件名为:"+file); 
  24. os = response.getOutputStream(); 
  25. response.setHeader("content-disposition""attachment;filename=" + file); 
  26. response.setContentType("application/vnd.ms-excel");//此项内容随文件类型而异 
  27. byte temp[] = new byte[1000]; 
  28. fis = new FileInputStream(file); 
  29. int n = 0; 
  30. while ((n = fis.read(temp)) != -1) { 
  31. os.write(temp, 0, n); 
  32. catch (Exception e) { 
  33. out.print("出错"); 
  34. finally { 
  35. if (os != null
  36. os.close(); 
  37. if (fis != null
  38. fis.close(); 
  39. out.clear(); 
  40. out = pageContext.pushBody(); 
  41. %> 
  42. <form action="" method="post"
  43. <select name="file"
  44. <option value="D:/Program Files/apache-tomcat-6.0.18/webapps/StarAttendance/upload/temp.xls"
  45. 冷山sky_snow 
  46. </option> 
  47. </select> 
  48. <input type="submit"/> 
  49. </form> 
  50. </html> 

 

 
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
  3. <%@ page import="java.io.*" %> 
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  5. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  6. <html xmlns="http://www.w3.org/1999/xhtml"
  7. <head> 
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  9. <link href="styles/basic.css" rel="stylesheet" type="text/css" /> 
  10. <title>download</title> 
  11. </head> 
  12. <% 
  13. response.setCharacterEncoding("gb2312"); 
  14. request.setCharacterEncoding("gb2312"); 
  15. if (request.getParameter("file") != null) { 
  16. OutputStream os = null
  17. FileInputStream fis = null
  18. try { 
  19. String file = request.getParameter("file"); 
  20. if (!(new File(file)).exists()) { 
  21. System.out.println("没有文件"); 
  22. return
  23. System.out.println("文件名为:"+file); 
  24. os = response.getOutputStream(); 
  25. response.setHeader("content-disposition""attachment;filename=" + file); 
  26. response.setContentType("application/vnd.ms-excel");//此项内容随文件类型而异 
  27. byte temp[] = new byte[1000]; 
  28. fis = new FileInputStream(file); 
  29. int n = 0; 
  30. while ((n = fis.read(temp)) != -1) { 
  31. os.write(temp, 0, n); 
  32. catch (Exception e) { 
  33. out.print("出错"); 
  34. finally { 
  35. if (os != null
  36. os.close(); 
  37. if (fis != null
  38. fis.close(); 
  39. out.clear(); 
  40. out = pageContext.pushBody(); 
  41. %> 
  42. <form action="" method="post"
  43. <select name="file"
  44. <option value="D:/Program Files/apache-tomcat-6.0.18/webapps/StarAttendance/upload/temp.xls"
  45. 冷山sky_snow 
  46. </option> 
  47. </select> 
  48. <input type="submit"/> 
  49. </form>  
  50. </html> 

2.另外一个修改后的版本(下载文件名可包含中文)

 

 
  1. <%@ page language="java"import="java.util.*,java.net.*"pageEncoding="utf-8"%> 
  2. <%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core"%> 
  3. <%@ page import="java.io.*" %> 
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
  6. <html xmlns="http://www.w3.org/1999/xhtml"
  7. <head> 
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  9. <link href="styles/basic.css" rel="stylesheet" type="text/css" /> 
  10. <title>download</title> 
  11. </head> 
  12. <% 
  13. response.setCharacterEncoding("UTF-8"); 
  14. request.setCharacterEncoding("UTF-8"); 
  15. String filepath = new String(request.getParameter("file").getBytes("ISO-8859-1"),"UTF-8"); 
  16. System.out.println("============================"+filepath); 
  17. if (filepath != null) { 
  18. OutputStream os = null
  19. FileInputStream fis = null
  20. try { 
  21. String file = filepath; 
  22. if (!(new File(file)).exists()) { 
  23. System.out.println("没有文件"); 
  24. return
  25. String filefilename = file.substring(file.lastIndexOf("//")+1); 
  26. System.out.println("文件名为:"+filename); 
  27. os = response.getOutputStream(); 
  28. response.setHeader("content-disposition""attachment;filename=" + new String(filename.getBytes("GBK"), "ISO-8859-1")); 
  29. response.setContentType("application/octet-stream");//八进制流 与文件类型无关 
  30. byte temp[] = new byte[1024]; 
  31. fis = new FileInputStream(file); 
  32. int n = 0; 
  33. while ((n = fis.read(temp)) != -1) { 
  34. os.write(temp, 0, n); 
  35. catch (Exception e) { 
  36. out.print("出错了"); 
  37. finally { 
  38. if (os != null
  39. os.close(); 
  40. if (fis != null
  41. fis.close(); 
  42. out.clear(); 
  43. out = pageContext.pushBody(); 
  44. %> 
  45. </html> 

希望本文所述对大家JSP程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表