download.java

来自「管理公司合同」· Java 代码 · 共 72 行

JAVA
72
字号
/**
 *DownLoad.java
 *created by yhl 2005-04-08 10:50:44
 *
 */
package cn.com.juneng.system.common;

import java.io.IOException;

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 DownLoad extends HttpServlet {

	static final private String CONTENT_TYPE = "text/html; charset=GBK";
	public static String RealPath = "";
	// Initialize global variables 
	public void init() throws ServletException {
		RealPath = this.getServletContext().getRealPath("/");
	}

	// Process the HTTP Get request
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		try {
			String className = request.getParameter("TargetClass");

			DownObject downObj = (DownObject) (Class.forName(className)
					.newInstance());
			downObj.setRequest(request);
			String fileName ="";
            if(!COMMON.isEmpty(request.getParameter("leibie")))
            fileName = downObj.getFileName(request);
            else
            	fileName = downObj.getFileName();
			fileName = new String(fileName.getBytes("GBK"), "iso8859-1");

			response.setContentType(downObj.getContentType());
			if ((DownObject.DOWN_SYS_SAVE).equals(downObj.getDownMode())) {
				// 做为附件下载
				response.addHeader("Content-Disposition",
						"attachment;filename=" + fileName);
			} else {
				// 直接IE打开
				response.addHeader("Content-Disposition", "filename="
						+ fileName);
			}

			ServletOutputStream sos = response.getOutputStream();
			downObj.createOutStream(sos, request);

			sos.flush();
			sos.close();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("获取文件内容出现异常!");
		}

	}

	// Clean up resources
	public void destroy() {
	}
}

⌨️ 快捷键说明

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