javaweb 下载文件
2016-09-24 20:14
169 查看
resp.sendRedirect("网页地址"); 网页重定向
// 设置字符串的编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding("utf-8");
// 写入界面
PrintWriter out = resp.getWriter();
out.print("内容");
// 获得配置文件中共有的那个配置文件
ServletContext sc = this.getServletContext();
// 苹果字符编码
ios-8859-1
// 下载文档 下载的文件还会乱码还未处理
//JAVA代码
package download;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.filechooser.FileNameExtensionFilter;
public class DownloadSever extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 呈现了web应用的Servlet视图
ServletContext sc = this.getServletContext();
// 设置文件格式
resp.setCharacterEncoding("utf-8");
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset = utf-8");
// 得到HTML文件中的标签的 fileName
String fileName = req.getParameter("fileName");
// 设置字符编码格式
String strname = new String(fileName.getBytes("ISO-8859-1"),"utf-8");
System.out.println(strname);
//下载不同的文件
if(strname.equals("AJAX基础.ppt")){
down(resp,sc,"PPT/AJAX基础.ppt",".ppt");
}else if(strname.equals("赵丽颖.jpg")){
down(resp,sc,"image/赵丽颖.jpg",".jpg");
}
}
/**
* 下载文档
* @param resp 响应
* @param sc 整个文档公有的对象
* @param path2 文件路径
* @param form 下载的格式
*/
public void down(HttpServletResponse resp,ServletContext sc,String path2,String form){
resp.setHeader("Content-Disposition", "attachment; filename="+System.currentTimeMillis()+form);
String path = sc.getRealPath(path2);
// 得到写入流
FileInputStream fis;
try {
fis = new FileInputStream(new File(path));
ServletOutputStream sos= resp.getOutputStream();
byte[] by = new byte[1024];
int length = 0;
while((length =fis.read() )!=-1 ){
sos.write(by,0,length);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
// HTML文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="DownloadSever?fileName=AJAX基础.ppt">下载AJAX基础.ppt</a>
<a href="DownloadSever?fileName=赵丽颖.jpg">下载赵丽颖图片</a>
</body>
</html>
// 配置文件
<!-- 下载 -->
<servlet>
<servlet-name>DownloadSever</servlet-name>
<servlet-class>download.DownloadSever</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DownloadSever</servlet-name>
<url-pattern>/DownloadSever</url-pattern>
</servlet-mapping>}
// 设置字符串的编码
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
resp.setCharacterEncoding("utf-8");
// 写入界面
PrintWriter out = resp.getWriter();
out.print("内容");
// 获得配置文件中共有的那个配置文件
ServletContext sc = this.getServletContext();
// 苹果字符编码
ios-8859-1
// 下载文档 下载的文件还会乱码还未处理
//JAVA代码
package download;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.filechooser.FileNameExtensionFilter;
public class DownloadSever extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 呈现了web应用的Servlet视图
ServletContext sc = this.getServletContext();
// 设置文件格式
resp.setCharacterEncoding("utf-8");
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset = utf-8");
// 得到HTML文件中的标签的 fileName
String fileName = req.getParameter("fileName");
// 设置字符编码格式
String strname = new String(fileName.getBytes("ISO-8859-1"),"utf-8");
System.out.println(strname);
//下载不同的文件
if(strname.equals("AJAX基础.ppt")){
down(resp,sc,"PPT/AJAX基础.ppt",".ppt");
}else if(strname.equals("赵丽颖.jpg")){
down(resp,sc,"image/赵丽颖.jpg",".jpg");
}
}
/**
* 下载文档
* @param resp 响应
* @param sc 整个文档公有的对象
* @param path2 文件路径
* @param form 下载的格式
*/
public void down(HttpServletResponse resp,ServletContext sc,String path2,String form){
resp.setHeader("Content-Disposition", "attachment; filename="+System.currentTimeMillis()+form);
String path = sc.getRealPath(path2);
// 得到写入流
FileInputStream fis;
try {
fis = new FileInputStream(new File(path));
ServletOutputStream sos= resp.getOutputStream();
byte[] by = new byte[1024];
int length = 0;
while((length =fis.read() )!=-1 ){
sos.write(by,0,length);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
// HTML文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="DownloadSever?fileName=AJAX基础.ppt">下载AJAX基础.ppt</a>
<a href="DownloadSever?fileName=赵丽颖.jpg">下载赵丽颖图片</a>
</body>
</html>
// 配置文件
<!-- 下载 -->
<servlet>
<servlet-name>DownloadSever</servlet-name>
<servlet-class>download.DownloadSever</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DownloadSever</servlet-name>
<url-pattern>/DownloadSever</url-pattern>
</servlet-mapping>}
相关文章推荐
- JavaWeb 文件上传和下载以及图片水印
- 《JavaWeb---简单应用---服务器向客户端提供音乐资源(三)》--- 利用struts实现文件下载,下载时改变文件的名称
- 在javaweb中下载文件两种简单的方式
- javaweb文件下载 部署到服务器文件下载有问题
- JavaWeb下载文件
- JavaWeb项目下中文名文件的下载
- JavaWeb学习记录(二十三)——文件上传与下载
- JavaWeb -- Struts1 多文件上传与下载 DownloadAction, DispatchAction
- JavaWeb -- Struts1 多文件上传与下载 DownloadAction, DispatchAction
- Javaweb学习笔记10—文件上传与下载
- javaweb文件上传下载
- JavaWeb学习之道:文件上传和下载
- JavaWeb-文件的上传与下载
- JavaWeb_14_文件上传下载_fileupload案例
- javaweb jsp页面中实现文件下载
- javaweb中下载二进制文件
- [JAVAWEB实战篇]---java文件上传和下载的网摘整理
- [JAVAWEB实战篇]---jsp文件下载
- javaweb下载中文名文件兼容IE和火狐
- (6) javaweb 文件下载 ie chrome正常 但是ff下载中文名称乱码 另附上传下载代码