download.java

来自「Tapestry的一个练习例子」· Java 代码 · 共 38 行

JAVA
38
字号
package com.ttdev.updown;

import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.http.HttpServletResponse;

import org.apache.hivemind.ApplicationRuntimeException;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.annotations.InjectObject;
import org.apache.tapestry.html.BasePage;

public abstract class Download extends BasePage {
	private int imageId;

	@InjectObject("service:tapestry.globals.HttpServletResponse")
	public abstract HttpServletResponse getResponse();

	public void setImageId(int imageId) {
		this.imageId = imageId;
	}

	public void renderPage(IMarkupWriter writer, IRequestCycle cycle) {
		byte imageData[] = ImageDB.loadImage(imageId);
		HttpServletResponse response = getResponse();
		response.setContentType("image/jpeg");
		response.setHeader("Content-disposition",
				"attachment; filename=foo.jpg");
		try {
			OutputStream out = response.getOutputStream();
			out.write(imageData);
		} catch (IOException e) {
			throw new ApplicationRuntimeException(e);
		}
	}
}

⌨️ 快捷键说明

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