我们有一个旧代码,使站点用户可以从服务器下载文件。
到目前为止,下载的文件为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();
}