메뉴 건너뛰기

XEDITION

프로그램

etc xeni 엑셀 다운로드 관련

묵묵이 2023.12.08 08:51 조회 수 : 2

 

package com.nexacro.util;

 

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

 

import javax.servlet.http.HttpServletResponse;

 

import com.nexacro.java.xapi.data.DataSet;

import com.nexacro.java.xapi.data.PlatformData;

import com.nexacro.java.xapi.data.VariableList;

import com.nexacro.java.xapi.tx.HttpPlatformResponse;

import com.nexacro.java.xapi.tx.PlatformType;

import com.nexacro.java.xeni.extend.XeniExcelDataStorageBase;

import com.nexacro.java.xeni.util.CommUtil;

 

/*

 

제니 엑셀 다운로드 호풀 관련

   - HTTPS 통신 하나, 제니에서는 HTTP 로 호출 

 

답변

1. 개발 환경에서 proxy나 web server를 통할 경우 xeni를 호출할때 http로 호출되는 것이 아닌지 확인이 필요해 보입니다.

2. 아래와 같이 'export-url' 설정을 통해 url를 고정 시킬 수 있습니다.

 

web.xml 설정 

export-url : "https://dev.tobesoft.com/xeni/ExportImport.do"

 

<context-param>

    <param-name>export-url</param-name>

    <param-value>https://dev.tobesoft.com/xeni/ExportImport.do</param-value>

    </context-param>

 

export 파일 경로 지정시

<context-param>

    <param-name>export-path</param-name>

    <param-value>file:///temp/export</param-value>

    </context-param>

 

 */

 

public class XeniExtend implements XeniExcelDataStorageBase {

 

/**

* read excel file 

*/

public InputStream loadTargetStream(String filepath) throws Exception {

 

File file = new File(filepath);

return new FileInputStream(file);

}

 

 

/*   

  확장 클래스를 이용해 다운로드 URL을 사용자가 지정하는 방법을 사용합니다

  1. nexacro 화면에서 호출하는 도메인 정보를 variable list에 담아 전달.

  ex) exportObj.exportData("requesturl=" + url);

*/

 

public String saveImportStream(VariableList varlist, 

InputStream in, 

String filepath) throws Exception {

 

int nIdx = filepath.lastIndexOf("/");

String sPath = filepath.substring(0, nIdx);

 

File file = new File(sPath);

if (file.exists() == false) {

file.mkdirs();

}

 

// write input stream to file

//

OutputStream out = new FileOutputStream(filepath);

 

byte[] buf = new byte[1024];

int length = 0;

while ((length = in.read(buf)) > 0) {

out.write(buf, 0, length);

}

 

out.flush(); 

out.close(); 

in.close();

 

return null;

}

 

 

public int saveExportStream(VariableList varlist, 

DataSet dscmd,

ByteArrayOutputStream out, 

String filepath, String fileurl,

HttpServletResponse response)  throws Exception {

 

String strUrl = varlist.getString("ExtUrl");

 

 

System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> strUrl : " + strUrl);

 

fileurl = fileurl.split("://")[1];

int idx = fileurl.indexOf("/");    

fileurl = "https://" 

          + strUrl

          + fileurl.substring(idx);

System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>> fileurl : " + fileurl);

 

 

int nIdx = filepath.lastIndexOf("/");

String sPath = filepath.substring(0, nIdx);

 

File file = new File(sPath);

if (file.exists() == false) {

file.mkdirs();

}

 

FileOutputStream fout = new FileOutputStream(filepath);

fout.write(out.toByteArray());

 

fout.close();

out.close();

 

DataSet dsRes = CommUtil.getDatasetExportResponse(dscmd);

 

 

PlatformData resData = new PlatformData();

VariableList varList = resData.getVariableList();

 

varList.add("ErrorCode", 0); 

varList.add("ErrorMsg", "SUCCESS");

 

dsRes.set(0, "url", fileurl);

resData.addDataSet(dsRes);

 

HttpPlatformResponse platformRes = new HttpPlatformResponse(

response, PlatformType.CONTENT_TYPE_SSV, "UTF-8");

platformRes.setData(resData);

platformRes.sendData();

 

return 0;

}

 

 

@Override

public DataSet saveExportStream(com.nexacro.java.xapi.data.VariableList arg0,

com.nexacro.java.xapi.data.DataSet arg1, ByteArrayOutputStream arg2, String arg3, String arg4)

throws Exception {

// TODO Auto-generated method stub

return null;

}

 

 

}

 
번호 제목 글쓴이 날짜 조회 수
212 안드로이드 생체 인식 인증 샘플 file 묵묵이 2024.12.19 0
211 Webbrowser 버전은 아래와 같이 변경 묵묵이 2024.04.28 1
210 HttpURLConnection 이용한 통신 / 파일 다운로드 묵묵이 2024.03.14 0
209 [Spring Boot] Gradle 로 빌드 하는 법 묵묵이 2024.02.08 0
208 Gradle 프로젝트 설정 묵묵이 2024.02.08 0
207 document.baseURI 를 지원하지 않는 이슈 묵묵이 2024.01.23 0
206 ios WkWebview 개발자 모드에서 로그를 볼수 없는 현상 묵묵이 2023.12.21 0
205 Cordova(코르도바) 설치, 프로젝트 생성 묵묵이 2023.12.14 0
204 웹뷰(WebView) 사용법 묵묵이 2023.12.13 0
203 안드로이드 기본값으로 휴대폰 기울기에 따라 자동회전 막기 묵묵이 2023.12.13 0
202 화면모드로 전환시 WebView가 리로드되는 현상 묵묵이 2023.12.13 0
» xeni 엑셀 다운로드 관련 file 묵묵이 2023.12.08 2
200 CKeditor4 를 이용한 게시판 글쓰기 구현 및 사진 업로드 [1] 묵묵이 2023.11.23 1
199 Jenkins REST API 호출로 Job 생성/실행/결과조회 하기 묵묵이 2023.09.22 1
198 키보드 변경시 앱 재시동 현상 묵묵이 2023.09.09 0
197 Tomcat(톰캣)에서 HTTP/2 (HTTP 2.0) 사용하기 묵묵이 2023.08.08 7
196 Eclipse Git Merge Conflict 해결 방법 [1] 묵묵이 2023.07.27 1
195 유튜브 무료 영화 묵묵이 2023.07.24 0
194 Git 줄 끝을 처리하도록 Git 구성 2 [2] 묵묵이 2023.07.20 2
193 빌라가배 Villagabae - 풀빌라 거제 묵묵이 2023.07.18 0
위로