1、編寫anction,如下:
package cn.com.css.misps.onlinegraph.web.action;
import java.io.file;
import java.io.fileinputstream;
import java.io.inputstream;
import java.net.urlencoder;
import java.util.arraylist;
import java.util.hashmap;
import java.util.linkedhashmap;
import java.util.list;
import java.util.map;
import javax.annotation.resource;
import org.springframework.context.annotation.scope;
import org.springframework.stereotype.controller;
import cn.com.css.common.action.baseaction;
import cn.com.css.misps.domain.servicecode;
import cn.com.css.misps.domain.serviceproductcode;
import cn.com.css.misps.domain.tprcategory;
import cn.com.css.misps.onlinegraph.service.iservicecodeservice;
import cn.com.css.misps.onlinegraph.service.iserviceproductcodeservice;
import cn.com.css.misps.onlinegraph.service.itprcategoryservice;
import cn.com.css.misps.onlinegraph.service.itproductinfoservice;
import cn.com.css.misps.onlinegraph.util.analysismicaps2bytesutils;
import cn.com.css.misps.onlinegraph.util.dateutil;
import cn.com.css.misps.onlinegraph.util.fnameutils;
import cn.com.css.misps.onlinegraph.util.imagebytesanalysisutils;
import cn.com.css.misps.onlinegraph.util.productsstorageutils;
import cn.com.css.misps.onlinegraph.webservice.impl.graphwebserviceimpl;
import cn.com.system.domain.account;
import com.opensymphony.xwork2.actioncontext;
/**
* @brief onlinegraphaction.java 這裡是線上出圖部分的代碼
* @attention 要注意的是頁面中的表單填寫的是服務方法中要求填寫的參數
* @author 塗作權
* @date 2013-9-4
* @note begin modify by null
*/
@suppresswarnings("serial")
@scope("prototype")
@controller
public class onlinegraphaction extends baseaction {
// 相對門戶項目的相對路徑
private string relativestoragefilepath;
// 圖形檔案的檔案名稱
private string imgpath;
// 下載下傳檔案使用者的
private inputstream inputstream;
/**
* \brief 下載下傳産生的圖檔
*
* @return
* @attention
* @author 塗作權
* @date 2014-3-26
* @note begin modify by null
*/
public string download() throws exception {
inputstream = new fileinputstream(
productsstorageutils.graphabsolutepath
+ relativestoragefilepath + "/" + imgpath);
//這裡的imgpath表示的是的是檔案的名稱,即:fname
string name = urlencoder.encode(imgpath,"utf-8");
actioncontext.getcontext().put("name", name);
return "download";
}
* @return the imgpath
public string getimgpath() {
return imgpath;
* @param imgpath
* the imgpath to set
public void setimgpath(string imgpath) {
this.imgpath = imgpath;
* @return the inputstream
public inputstream getinputstream() {
return inputstream;
* @param inputstream
* the inputstream to set
public void setinputstream(inputstream inputstream) {
this.inputstream = inputstream;
}
在struts配置檔案中進行如下配置:
<action name="onlinegraph_*" class="cn.com.css.misps.onlinegraph.web.action.onlinegraphaction" method="{1}">
<result name="download" type="stream">
<param name="inputname">inputstream</param>
<param name="contentdisposition">attachment;filename="${#name}"</param>
<param name="buffersize">4096</param>
</result>
</action>