📄 downproc.java
字号:
package com.mypack.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
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.servlet.http.HttpSession;
import com.mypack.dto.UserInfo;
public class DownProc extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String file = request.getParameter("file");
HttpSession session = request.getSession();
UserInfo userInfo = (UserInfo) session.getAttribute("userInfo");
if (userInfo != null) {
if (file != null && file.startsWith(userInfo.getRole())) {
response.setContentType("application/octet-stream");
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
String date =sdf.format(new Date());
ServletContext sc = getServletContext();
String downDir = sc.getInitParameter("downDir");
InputStream is = sc.getResourceAsStream(downDir + file);
int pos = file.lastIndexOf(".");
file = new StringBuilder().append(file.substring(0, pos))
.append("_").append(date).append(".").append(
file.substring(pos + 1, file.length()))
.toString();
file = new String(file.getBytes("gb2312"), "iso-8859-1");
response.setHeader("Content-Disposition",
"attachment;filename=" + file);
byte[] buf = new byte[8196];
int len;
ServletOutputStream sos = response.getOutputStream();
while ((len = is.read(buf)) != -1) {
sos.write(buf, 0, len);
}
sos.flush();
sos.close();
is.close();
} else {
log("ALERT: 用户 " + userInfo.getUsername() + "试图违反权限下载《" + file
+ "》");
request.getRequestDispatcher("../jsp/privAlert.jsp").forward(
request, response);
}
} else {
request.getRequestDispatcher("../jsp/sessionTimeoutAlert.jsp")
.forward(request, response);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -