struts2文件下载示例

本文介绍了数据日志管理及下载的功能实现,包括查询、显示和下载数据日志的流程,涉及日期筛选、数据类型选择以及文件下载的具体操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

?

package com.topdt.policesms.action;

?

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.InputStream;

?

import org.apache.struts2.convention.annotation.Action;

import org.apache.struts2.convention.annotation.InterceptorRef;

import org.apache.struts2.convention.annotation.Namespace;

import org.apache.struts2.convention.annotation.ParentPackage;

import org.apache.struts2.convention.annotation.Result;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Controller;

?

import com.topdt.frame.base.Struts2Action;

import com.topdt.frame.common.AppContext;

import com.topdt.policesms.model.DataLog;

import com.topdt.policesms.service.DataLogService;

?

/**

?* 数据日志

?* @author Administrator

?*

?*/

@Controller

@Scope("prototype")

@ParentPackage(value = "gloab-package")

@Namespace(value = "/message")

@Action(value = "dlog", results = {

<span style="white-space: pre;"> </span>@Result(name = "list", location = "/message/dlog/dlog_list.jsp"),

<span style="white-space: pre;"> </span>@Result(name = "download", type = "stream<span style="color: #ff0000;">(类型为流)</span>", params = { "contentType",

<span style="white-space: pre;"> </span>"application<span style="color: #ff0000;">(应用程序)</span>/octet-stream;charset=ISO8859-1", "inputName<span style="color: #ff0000;">(输入文件名称)</span>",

<span style="white-space: pre;"> </span>"fstream", "contentDisposition", "attachment;filename=<span style="color: #ff0000;">${downloadFileName}</span>",

<span style="white-space: pre;"> </span>"bufferSize", "4096" }),

<span style="white-space: pre;"> </span>@Result(name = "invalid.token",type="redirect",location = "task!list.action",params = {"message", "请不要重复提交" })?

<span style="white-space: pre;"> </span>},?

<span style="white-space: pre;"> </span>interceptorRefs = {

<span style="white-space: pre;"> </span>@InterceptorRef(value = "pageInterceptor", params = { "includeMethods", "list" }),

<span style="white-space: pre;"> </span>@InterceptorRef(value = "token", params = { "includeMethods", "save" }),

<span style="white-space: pre;"> </span>@InterceptorRef("topDtStack")?

<span style="white-space: pre;"> </span>})

public class DataLogAction extends Struts2Action<DataLog>{

?

<span style="white-space: pre;"> </span>private static final long serialVersionUID = 1792436660779570837L;

?

<span style="white-space: pre;"> </span>@Autowired

<span style="white-space: pre;"> </span>private DataLogService dataLogService;

<span style="white-space: pre;"> </span>private String statDate;

<span style="white-space: pre;"> </span>private String endDate;

<span style="white-space: pre;"> </span><span style="color: #ff0000;">private InputStream fstream;</span>

<span style="white-space: pre;"> </span><span style="color: #ff0000;">private String inputPath;</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>private String fileName</span>;

<span style="white-space: pre;"> </span>

? ? public void setInputPath(String value) {

? ? ? ? inputPath = value;

? ? }

?

? ? public void setFileName(String fileName) {

<span style="white-space: pre;"> </span>this.fileName = fileName;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>@Override

<span style="white-space: pre;"> </span>protected void doList() throws Exception {

<span style="white-space: pre;"> </span>list = dataLogService.queryDataLog(statDate, endDate, getModel().getDataType());

<span style="white-space: pre;"> </span>}

?

<span style="color: #ff0000;">//取得文件名称</span>

?

<span style="white-space: pre;"> </span><span style="color: #ff0000;">public String getDownloadFileName(){</span>

<span style="color: #ff0000;">? ? <span style="white-space: pre;"> </span>String downFileName=fileName;</span>

<span style="color: #ff0000;">? ? <span style="white-space: pre;"> </span>try {</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>downFileName=new String(downFileName.getBytes(),"ISO8859-1");</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>} catch (Exception e) {</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>e.printStackTrace();</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>}</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>return downFileName;</span>

<span style="color: #ff0000;">? ? }</span>

<span style="color: #ff0000;">//下载文件</span>

<span style="white-space: pre;"> </span><span style="color: #ff0000;">public String downLog () {</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>inputPath = AppContext.getProperties("breakDataDir")+fileName;</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>try {</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>fstream = new FileInputStream(new File(inputPath));</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>} catch (FileNotFoundException e) {</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>e.printStackTrace();</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>}</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>return "download";</span>

<span style="color: #ff0000;"><span style="white-space: pre;"> </span>}</span>

<span style="white-space: pre;"> </span>

<span style="white-space: pre;"> </span>public DataLogService getDataLogService() {

<span style="white-space: pre;"> </span>return dataLogService;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public void setDataLogService(DataLogService dataLogService) {

<span style="white-space: pre;"> </span>this.dataLogService = dataLogService;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public String getStatDate() {

<span style="white-space: pre;"> </span>return statDate;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public void setStatDate(String statDate) {

<span style="white-space: pre;"> </span>this.statDate = statDate;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public String getEndDate() {

<span style="white-space: pre;"> </span>return endDate;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public void setEndDate(String endDate) {

<span style="white-space: pre;"> </span>this.endDate = endDate;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public InputStream getFstream() {

<span style="white-space: pre;"> </span>return fstream;

<span style="white-space: pre;"> </span>}

?

<span style="white-space: pre;"> </span>public void setFstream(InputStream fstream) {

<span style="white-space: pre;"> </span>this.fstream = fstream;

<span style="white-space: pre;"> </span>}

?

}

?

?

HTML :代码:<a href='dlog!downLog.action?fileName=<s:property value="#dlog.errorDetail"/>'>错误详细</a>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值