在流式传输到客户端时报告CSV中的错误

时间:2017-08-02 05:29:01

标签: java excel csv error-handling chunked

我用Spring编写服务器端代码,生成CSV输出。 我事先并不知道CSV的大小(我在这个过程中从下游获取源数据),所以我将CSV直接写入HTTP响应输出流中。

看来,如果在某些字节之后的某处已经将处理错误写入响应,则无法处理该异常,并且最终用户认为CSV文件正常。问题是它没有问题,并且由于错误而不完整。

我想我的选择很少:

  • 使用Trailer标头和Location重定向用户出错。但是,任何现代浏览器似乎都不支持这种情况。
  • 记录错误服务器端,但是没有给最终用户任何反馈
  • 将整个响应写入服务器上的临时文件并改为流式传输该文件。此选项会影响性能。
  • 在生成的CSV流结束时写入错误消息,但这意味着最终用户必须在文件的最末端查找错误消息并且可能会错过它

最终用户使用MS Excel打开生成的CSV文件。

是否有任何特殊的字符/字节我可以写入CSV输出,如果出现错误,使其无效并向最终用户显示错误?

0 个答案:

没有答案