package com.fusioncharts.exporter.resources;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.imageio.stream.FileImageOutputStream;
import javax.servlet.http.HttpServletResponse;
import com.fusioncharts.exporter.ErrorHandler;
import com.fusioncharts.exporter.FusionChartsExportHelper;
import com.fusioncharts.exporter.beans.ChartMetadata;
import com.fusioncharts.exporter.beans.ExportBean;
import com.fusioncharts.exporter.encoders.BasicEncoder;
import com.fusioncharts.exporter.encoders.JPEGEncoder;
import com.fusioncharts.exporter.generators.ImageGenerator;
/**
*
* @author InfosoftGlobal (P) Ltd.
*
*/
public class FCExporter_IMG extends FCExporter_Format {
private ExportBean exportBean=null;
/* (non-Javadoc)
* @see com.fusioncharts.exporter.resources.FcExporter_Format#exportOutput(java.lang.Object, javax.servlet.http.HttpServletResponse, java.lang.String, int)
*/
public String exportOutput(Object exportObj, HttpServletResponse response) {
String action= (String)exportBean.getExportParameterValue("exportaction");
String exportFormat = (String)exportBean.getExportParameterValue("exportformat");
String exportTargetWindow = (String)exportBean.getExportParameterValue("exporttargetwindow");
String fileNameWithoutExt = (String)exportBean.getExportParameterValue("exportfilename");
String extension = FusionChartsExportHelper.getExtensionFor(exportFormat.toLowerCase());;
String fileName = fileNameWithoutExt+"."+ extension;
String stream = (String)exportBean.getStream();
StringBuffer err_warn_Codes = new StringBuffer();
BufferedImage chartImage = (BufferedImage)exportObj;
boolean isHTML = false;
if(action.equals("download"))
isHTML=true;
String noticeMessage = "";
String meta_values= exportBean.getMetadataAsQueryString(null,false,isHTML);
if(!action.equals("download")){
noticeMessage = "¬ice=";
// For servlet api before 2.1 use the following
//String requestURL = HttpUtils.getRequestURL(request).toString();
// in servlet api 2.1 use the following
//String requestURL = request.getRequestURL().toString();
String pathToSaveFolder = (String)exportBean.getExportParameterValue("webapproot")+File.separator+FusionChartsExportHelper.SAVEPATH;
File saveFolder = new File(pathToSaveFolder);
String completeFilePath = pathToSaveFolder + File.separator + fileName;
String completeFilePathWithoutExt = pathToSaveFolder + File.separator + fileNameWithoutExt;
File saveFile = new File(completeFilePath);
if(saveFile.exists()) {
noticeMessage+=ErrorHandler.getErrorForCode("W509");
if(!FusionChartsExportHelper.OVERWRITEFILE){
if(FusionChartsExportHelper.INTELLIGENTFILENAMING) {
noticeMessage+=ErrorHandler.getErrorForCode("W514");
completeFilePath= FusionChartsExportHelper.getUniqueFileName(completeFilePathWithoutExt,extension);
File tempFile= new File(completeFilePath);
fileName = tempFile.getName();
noticeMessage+=ErrorHandler.getErrorForCode("W515")+ fileName;
err_warn_Codes.append("W515,");
}
}
}
// In Save mode, send back Successful response back to chart
// In save mode, isHTML is false
String pathToDisplay=FusionChartsExportHelper.HTTP_URI+"/"+fileName;
if (FusionChartsExportHelper.HTTP_URI.endsWith("/")) {
pathToDisplay=FusionChartsExportHelper.HTTP_URI+fileName;
}
meta_values =exportBean.getMetadataAsQueryString(pathToDisplay,false,isHTML);
try{
// Now encode and save to file
FileImageOutputStream fios = new FileImageOutputStream(new File(completeFilePath));
if( exportFormat.toLowerCase().equalsIgnoreCase("jpg") || exportFormat.toLowerCase().equalsIgnoreCase("jpeg")){
JPEGEncoder jpegEncoder = new JPEGEncoder();
try {
jpegEncoder.encode(chartImage,fios);
}catch(Throwable e){
//TODO Unable to encode the buffered image
err_warn_Codes.append("E516,");
}
chartImage=null;
}
else {
BasicEncoder basicEncoder = new BasicEncoder();
try {
basicEncoder.encode(chartImage,fios,1F,exportFormat.toLowerCase());
}catch(Throwable e){
System.out.println(" Unable to encode the buffered image");
err_warn_Codes.append("E516,");
}
chartImage=null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(err_warn_Codes.indexOf("E")<0){
// if there are no errors
PrintWriter out;
try {
out = response.getWriter();
out.print(meta_values+noticeMessage+"&statusCode=1&statusMessage=successful");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
else{
try {
response.setContentType(FusionChartsExportHelper.getMimeTypeFor(exportFormat.toLowerCase()));
OutputStream os = response.getOutputStream();
if(exportTargetWindow.equalsIgnoreCase("_self")){
response.addHeader("Content-Disposition", "attachment; filename=\""+fileName+"\"");
//response.addHeader("Content-length",""+ios.length());
}
else {
response.addHeader("Content-Disposition", "inline; filename=\""+fileName+"\"");
}
if( exportFormat.toLowerCase().equalsIgnoreCase("jpg") || exportFormat.toLowerCase().equalsIgnoreCase("jpeg")){
JPEGEncoder jpegEncoder = new JPEGEncoder();
try {
jpegEncoder.encode(chartImage,os);
os.flush();
}catch(Throwable e){
//Unable to encode the buffered image
System.out.println("Unable to (JPEG) encode the buffered image");
err_warn_Codes.append("E516,");
//os.flush();
// Note forward will not work in this case, as the output stream has already been opened
// Hence we have to output the error directly.
meta_values =exportBean.getMetadataAsQueryString(null,true,isHTML);
// Reset the response to set new content type and use out instead of outputstream
response.reset();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print(meta_values+noticeMessage+ErrorHandler.buildResponse(err_warn_Codes.toString(),isHTML));
return null;
}
chartImage=null;
}
else {
BasicEncoder basicEncoder = new BasicEncoder();
try {
basicEncoder.encode(chartImage,os,1F,exportFormat.toLowerCase());
os.flush();
}catch(Throwable e){
System.out.println("Unable to encode the buffered image");
err_warn_Codes.append("E516,");
//os.flush();
// Note forward will not work in this case, as the output stream has already been opened
// Hence we have to output the error directly.
meta_values =exportBean.getMetadataAsQueryString(null,true,isHTML);
// Reset the response to set new content type and use out instead of outputstream
response.reset();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.print(meta_values+noticeMessage+ErrorHandler.buildResponse(err_warn_Codes.toString(),isHTML));
return null;
}
chartImage=null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(err_warn_Codes.indexOf("E") != -1) {
meta_values =exportBean.getMetadataAsQueryString(null,true,isHTML);
PrintWriter out;
try {
out = response.getWriter();
out.print(meta_values+noticeMessage+"&statusCode=1&statusMessage=successful");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
public Obje
没有合适的资源?快使用搜索试试~ 我知道了~
fusioncharts 导出保存图片 绝对能运行 2种方式保存
共167个文件
svn-base:76个
swf:50个
tld:15个
5星 · 超过95%的资源 需积分: 9 109 下载量 167 浏览量
2011-09-14
18:00:35
上传
评论
收藏 5.6MB RAR 举报
温馨提示
fusioncharts 导出保存图片 绝对能运行 2种方式保存 提供服务器保存 和 客户端保存 test.jsp 和 test.html是客户端保存 index.jsp是服务器端保存(请参见fusioncharts_export.properties) 请在服务端运行程序!!切记
资源推荐
资源详情
资源评论
收起资源包目录
fusioncharts 导出保存图片 绝对能运行 2种方式保存 (167个子文件)
all-wcprops 6KB
FCExporter_IMG.class 7KB
FCExporter.class 6KB
FCExporter_PDF.class 5KB
FCExporter_Format.class 545B
.classpath 551B
entries 7KB
test.html 1KB
standard.jar 384KB
fcexporter.jar 21KB
jstl.jar 20KB
FCExporter_IMG.java 8KB
FCExporter_PDF.java 6KB
FCExporter.java 5KB
FCExporter_Format.java 423B
FusionCharts.js 113KB
FusionChartsExportComponent.js 8KB
index.jsp 3KB
test.jsp 2KB
MANIFEST.MF 39B
.mymetadata 291B
.project 1KB
fusioncharts_export.properties 227B
fusioncharts_export.properties 227B
MSCombi3D.swf.svn-base 96KB
ScrollCombiDY2D.swf.svn-base 74KB
ScrollCombi2D.swf.svn-base 72KB
MSCombiDY2D.swf.svn-base 70KB
MSStackedColumn2DLineDY.swf.svn-base 70KB
ScrollStackedColumn2D.swf.svn-base 69KB
ScrollArea2D.swf.svn-base 69KB
StackedColumn3DLineDY.swf.svn-base 68KB
ScrollColumn2D.swf.svn-base 68KB
ScrollLine2D.swf.svn-base 68KB
MSColumn3DLineDY.swf.svn-base 68KB
MSCombi2D.swf.svn-base 68KB
MSColumnLine3D.swf.svn-base 66KB
MSStackedColumn2D.swf.svn-base 65KB
StackedArea2D.swf.svn-base 65KB
StackedColumn2D.swf.svn-base 65KB
MSArea.swf.svn-base 65KB
MSColumn2D.swf.svn-base 64KB
Bubble.swf.svn-base 64KB
StackedColumn3D.swf.svn-base 64KB
Scatter.swf.svn-base 64KB
StackedBar2D.swf.svn-base 64KB
MSLine.swf.svn-base 64KB
MSColumn3D.swf.svn-base 64KB
MSBar2D.swf.svn-base 64KB
StackedBar3D.swf.svn-base 63KB
MSBar3D.swf.svn-base 63KB
Area2D.swf.svn-base 61KB
Column2D.swf.svn-base 61KB
Line.swf.svn-base 60KB
Bar2D.swf.svn-base 60KB
Column3D.swf.svn-base 56KB
Doughnut3D.swf.svn-base 51KB
Pie3D.swf.svn-base 51KB
Doughnut2D.swf.svn-base 46KB
Pie2D.swf.svn-base 46KB
SSGrid.swf.svn-base 36KB
FusionCharts.js.svn-base 11KB
FusionChartsSave.jsp.svn-base 3KB
StackedColumn3DLineDY.swf.svn-base 53B
ScrollStackedColumn2D.swf.svn-base 53B
MSCombi3D.swf.svn-base 53B
Doughnut3D.swf.svn-base 53B
ScrollCombiDY2D.swf.svn-base 53B
MSColumn3D.swf.svn-base 53B
StackedArea2D.swf.svn-base 53B
Column2D.swf.svn-base 53B
ScrollLine2D.swf.svn-base 53B
MSStackedColumn2D.swf.svn-base 53B
MSLine.swf.svn-base 53B
Doughnut2D.swf.svn-base 53B
MSStackedColumn2DLineDY.swf.svn-base 53B
MSCombiDY2D.swf.svn-base 53B
Bar2D.swf.svn-base 53B
Pie2D.swf.svn-base 53B
SSGrid.swf.svn-base 53B
MSArea.swf.svn-base 53B
Pie3D.swf.svn-base 53B
StackedColumn2D.swf.svn-base 53B
ScrollCombi2D.swf.svn-base 53B
MSBar2D.swf.svn-base 53B
MSColumn3DLineDY.swf.svn-base 53B
ScrollArea2D.swf.svn-base 53B
MSBar3D.swf.svn-base 53B
Column3D.swf.svn-base 53B
Scatter.swf.svn-base 53B
Bubble.swf.svn-base 53B
StackedBar3D.swf.svn-base 53B
StackedColumn3D.swf.svn-base 53B
MSColumnLine3D.swf.svn-base 53B
Line.swf.svn-base 53B
StackedBar2D.swf.svn-base 53B
Area2D.swf.svn-base 53B
MSCombi2D.swf.svn-base 53B
MSColumn2D.swf.svn-base 53B
ScrollColumn2D.swf.svn-base 53B
共 167 条
- 1
- 2
给力地板油
- 粉丝: 60
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页