2016-11-06 3 views
-2

Я пытаюсь открыть файл xlsx, ведьма фактически хранится в базе данных как Blob. поэтому процесс выполняется в три этапа:открыть Xlsx из базы данных

1st: получить файл из базы данных.

2nd: сохранить его на сервере.

3rd: откройте его.

я пытался использовать 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

Я нашел решение моей проблемы. моя проблема заключалась в том, чтобы найти способ открыть файл excel с помощью браузера в веб-приложении. здесь решение в 2 этапа:

1-ый шаг:

установить расширение, которое поможет вам читать файлы в Excel я использовать https://chrome.google.com/webstore/detail/office-editing-for-docs-s/gbkeegbaiigmenfmjfclcdgdpimamgkj

второй шаг:

создать сервлет, который поможет вам прочитать ваш файл здесь, является частью моей:

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"; 
} 

[EDIT]: где Rapport - это модель, представляющая файл excel.

Удачи.