JEECG随笔--文件下载的配置与注意

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.*;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;

/**
 * 文件下载类
 *
 */

@Action(value = "XXXXAction", results = {
											@Result(name = "downloadAttachment",
													type="stream",
													params={
														"contentType","application/octet-stream;charset=ISO8859-1",
														"bufferSize","4096",
														"contentDisposition","attachment;filename=${downLoadFileName}",
														"inputName","inputStream"
													})
										})
public class DownloadAction extends ActionSupport {
   //供浏览器读取的信息
	@Getter @Setter private String fileName;
	@Getter @Setter private InputStream inputStream;
//这里 以前曾经直接使用 fileName 但是发现不行了, 不知道是不是和tomcat 有关,改为一个专用方法即可
	public String getDownLoadFileName(){
		return this.fileName;
	}
/**
	 * 下载附件
	 * @throws UnsupportedEncodingException
	 * @throws FileNotFoundException
	 */
	public String downloadAttachment() throws UnsupportedEncodingException, FileNotFoundException{
//这里不需要再做中文编码转换了
		this.fileName = webMailPage.getDownloadAttachmentFileName();
		String outFileFullPath = PathHelper.getServerRootPath() + DefaultConstants.downloadAttachmentTemp;

		String outFileAbsoluteFullPath =  outFileFullPath + File.separator + webMailPage.getDownloadAttachmentFileTempName();
		this.inputStream = new BufferedInputStream(new FileInputStream(outFileAbsoluteFullPath));

		return "downloadAttachment";
	}


}



你可能感兴趣的:(jeecg)