⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 downproc.java

📁 Servlet习题课 系统名称:登录及识别身份的下载
💻 JAVA
字号:
package com.mypack;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownProc extends HttpServlet {

	public DownProc() {
		super();
	}

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

		String role = (String) request.getSession().getAttribute("role");

		String file = request.getParameter("id");

		String head = file.substring(0, file.indexOf("_"));
		if (head.equals(role)) {

			String downDir = getServletConfig().getInitParameter("downDir");
			String relPath = downDir + file;
			String absPath = getServletContext().getRealPath(relPath);
			System.out.println("### absPath" + absPath);
			File objFile = new File(absPath);

			SimpleDateFormat fat = new SimpleDateFormat("yyyyMMdd");
			String date = fat.format(new Date());

			if (file != null && file.length() > 0 && objFile.exists()) {
				System.out.println(file);
				int index = file.indexOf(".");
				file = file.substring(0, index) + date + file.substring(index);
				file = new String(file.getBytes("GB2312"), "ISO8859_1");

				response
						.setContentType("application/octet-stream;charset=gb2312");
				response.setHeader("Content-Disposition",
						"attachment;filename=" + file);
				byte[] buf = new byte[4096];
				int len;
				FileInputStream fis = new FileInputStream(objFile);
				ServletOutputStream sos = response.getOutputStream();
				while ((len = fis.read(buf)) != -1) {
					sos.write(buf, 0, len);

				}
				sos.flush();
				sos.close();
			}

		} else {

			// 显示无权限下载,并用log("用户名试图下载文档名");
			PrintWriter out = response.getWriter();
			out.println("显示无权限下载");
			log("用户名试图下载文档名");
			out.flush();
			out.close();

		}

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -