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随笔--文件下载的配置与注意
最新推荐文章于 2024-08-07 15:47:48 发布