2016-11-06 4 views
-2

xlsx 파일을 열려고하면 마녀가 실제로 데이터베이스에 Blob로 저장됩니다. 따라서 프로세스는 세 단계로 진행됩니다.데이터베이스에서 Xlsx를 엽니 다

첫 번째 : 데이터베이스에서 파일 가져 오기.

두 번째 : 서버에 저장합니다.

3 번 : 열어주세요.

내가 이런 의 OutputStream 사용하려고 :

InputStream in = blob.getBinaryStream(); 
OutputStream out = new FileOutputStream("c:/mytemp/testanar.xlsx"); 
byte[] buff = blob.getBytes(1,(int)blob.length()); 
out.write(buff); 
out.close(); 

을하지만 난 URL에이 방법을 사용하려면 어떤 문제를 찾을 수 없습니다.

내 질문은 어떻게 파일을 서버에 저장할 수 있습니까?

+0

*하지만 URL에이 방법을 사용하는 데 문제가 없습니다 * : 그게 무슨 뜻입니까? 코드가 버그는 있지만 이미 서버에 파일을 저장하고 있지 않습니까? 정확하고 간단하게 만들려면 http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#copy-java.io.InputStream-java.nio를 사용하십시오. file.Path-java.nio.file.CopyOption ...-. 당신이해야 할 일이 아니라는 느낌이 들기 때문에, 당신이 성취하려는 것을 설명해야합니다. 마치 내가 사용자의 앱인 것처럼 기능이 무엇인지 설명하십시오. –

+0

okey. 처음에는 데이터베이스에서 파일을 읽으려고합니다. – devuser

+0

앱 사용자는 데이터베이스가 무엇인지 알지 못합니다. 그것보다 더 열심히 노력하십시오. 당신이 여기를 클릭 한 다음 ... –

답변

0

문제점에 대한 해결책을 찾았습니다. 내 문제는 웹 응용 프로그램에서 브라우저를 사용하여 파일을 열 수있는 방법을 찾는 것이 었습니다. 여기에 2 단계에서 솔루션은 다음과 같습니다

1 단계 :

이를 만듭니다

당신은 내가 https://chrome.google.com/webstore/detail/office-editing-for-docs-s/gbkeegbaiigmenfmjfclcdgdpimamgkj

2 단계 사용하는 엑셀의 파일을 읽을 수 있도록 확장 설치 여기 서 파일을 읽는 데 도움이되는 서블릿은 내 일부입니다.

public String downloadDocument(@PathVariable int docId, HttpServletResponse response) throws IOException { 
    Rapport document = rapportService.findRapportById(docId); 

    response.setContentType(document.getType()); 
    response.setContentLength(document.getContent().length); 
    // if you want to download the file instead of reading the same file 
    // remove "//" below 
    //response.setHeader("Content-Disposition", "attachment; filename=\"" + document.getName() + "\""); 
    FileCopyUtils.copy(document.getContent(), response.getOutputStream()); 

    return "redirect:listofreports"; 
} 

[편집] : 여기서 Rapport는 Excel의 파일을 나타내는 모델입니다.

행운을 빈다.