可以在服务器中打开Zip文件,但是在使用Angular 1下载后无法打开

时间:2018-12-04 07:24:49

标签: java angularjs spark-java

我们有一个旧代码,使站点用户可以从服务器下载文件。

到目前为止,下载的文件为with combo_data as (select rankk,val, cast(val as varchar(100)) as val2 from tmp_db where rankk=1 union all select b.rankk,b.val,cast(concat(b.val,',',a.val2) as varchar(100)) from tmp_db b join combo_data a on a.rankk+1=b.rankk ) select rankk,val2 from combo_data ,我们没有问题。

服务器现在还有一个zip文件-包含CSV。

服务器正确生成了zip文件(used this tutorial),并且在服务器中,我们可以打开zip文件,并正确提取内部CSV文件

问题在于浏览器下载zip文件时:内部CSV文件没有CSV后缀,并且无法打开。

我们得到的错误(使用7Zip):

  

数据意外结束

     

警告:

     

标题错误

     

有效载荷数据结束后还有一些数据

后端代码,用于提供文件(在CSV微服务中运行):

Spark-Java

前端代码(角度1)以获取文件:

    public Object handle(Request request, Response response) throws Exception {
    fileName = ...

    response.raw().setContentType("application/zip");
    response.raw().setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

    try (
        FileInputStream fis = new FileInputStream(fileName);
        BufferedOutputStream bufferedOutputStream = new BufferedOutptStream(response.raw().getOutputStream());
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fis)) {
        ByteStreams.copy(bufferedInputStream, bufferedOutputStream);
    } catch (Exception e) {
         ....
    }
    return response.raw();
}

0 个答案:

没有答案