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

我正在用Spring编写一个服务器端代码,生成一个CSV输出。 我不知道CSV将会有多大(我正在从下游获取源数据),所以我将CSV直接写入HTTP响应输出stream中。

看起来,如果在某些字节之后的某处发生了进程错误,则无法处理该exception,并且对于最终用户来说,CSV文件是正常的。 问题在于它不好,并且由于错误而不完整。

我想我有几个select:

  • 使用Trailer标题和Location来redirect用户的错误。 但是,这似乎不被任何现代浏览器支持
  • logging错误服务器端,但是这不会给最终用户任何反馈
  • 将整个响应写入服务器上的临时文件,然后stream式传输该文件。 这个选项有性能影响。
  • 在生成的CSVstream的末尾写入错误消息,但这意味着最终用户将不得不在文件的最后查找错误消息,并且可能会错过它

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

是否有任何特殊字符/字节可以写入CSV输出中,以防出现错误导致无效并向最终用户指示错误?

    Interesting Posts