文件上传下载
This commit is contained in:
@@ -18,27 +18,13 @@ public class DownLoadServlet extends HttpServlet {
|
||||
|
||||
public void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||
throws ServletException, IOException {
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.setContentType("text/html; charset=utf-8");
|
||||
|
||||
String curOrigin = request.getHeader("Origin");
|
||||
response.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin);
|
||||
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD");
|
||||
response.setHeader("Access-Control-Max-Age", "3600");
|
||||
response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With");
|
||||
response.setContentType("application/json;charset=UTF-8");
|
||||
|
||||
|
||||
PrintWriter writer = response.getWriter();
|
||||
|
||||
response.reset();
|
||||
response.setContentType("application/x-msdownload;charset=utf-8");
|
||||
//得到要下载的文件名
|
||||
String fileName = request.getParameter("filename");
|
||||
System.out.print(fileName);
|
||||
|
||||
System.out.println(fileName);
|
||||
//本地需要进行转码,linux服务器使用就会出现下载乱码
|
||||
//fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");
|
||||
|
||||
// System.out.print("转码后"+fileName);
|
||||
//上传的文件都是保存在/WEB-INF/upload目录下的子目录当中
|
||||
String fileSaveRootPath=this.getServletContext().getRealPath(File.separator+"WEB-INF"+File.separator+"upload");
|
||||
@@ -48,27 +34,31 @@ public class DownLoadServlet extends HttpServlet {
|
||||
//得到要下载的文件
|
||||
File file = new File(fileSaveRootPath + File.separator + fileName);
|
||||
//File file = new File(fileName);
|
||||
System.out.print(file);
|
||||
System.out.println(file);
|
||||
System.out.print("\n");
|
||||
// 浏览器请求响应转码防止乱码
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
request.setCharacterEncoding("UTF-8");
|
||||
//如果文件不存在
|
||||
if(!file.exists()){
|
||||
setResultError("文件资源已被删除",writer);
|
||||
request.setAttribute("message","wrong");
|
||||
request.getRequestDispatcher("/message.jsp").forward(request,response);
|
||||
return;
|
||||
}
|
||||
//处理文件名
|
||||
String realname = fileName.substring(fileName.indexOf("_")+1);
|
||||
System.out.println(realname);
|
||||
//设置响应头,控制浏览器下载该文件
|
||||
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8"));
|
||||
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
|
||||
//读取要下载的文件,保存到文件输入流
|
||||
FileInputStream in = new FileInputStream(fileSaveRootPath +File.separator+ fileName);
|
||||
|
||||
//创建输出流
|
||||
OutputStream out = response.getOutputStream();
|
||||
|
||||
//创建缓冲区
|
||||
byte buffer[] = new byte[1024];
|
||||
int len = 0;
|
||||
int len = 100;
|
||||
//循环将输入流中的内容读取到缓冲区当中
|
||||
while((len=in.read(buffer))>0){
|
||||
//输出缓冲区的内容到浏览器,实现文件下载
|
||||
|
@@ -6,6 +6,7 @@
|
||||
To change this template use File | Settings | File Templates.
|
||||
--%>
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<%--<%@ taglib prefix=" " uri="http://java.sun.com/jsp/jstl/core"%>--%>
|
||||
<html>
|
||||
<head>
|
||||
<title>$Title$</title>
|
||||
|
Reference in New Issue
Block a user