这里先明确三个概念和其关系,
browser 浏览器
office server office的软件
file server 文件管理服务器
下面上图说明下预览的时候的请求流程
简单的解释下:
这里注意几个问题:
1、请求地址的格式别随便改
2、请求地址中filename和返回的Base FileName保持一致会避免很多奇葩的问题存在。
3、getFile请求的时候返回的数据是流的形式返回,如果指定content-type的为
application/octet-stream。那么最好不要用RestController
4、从远程例如阿里OSS获取文件的时候计算文件大小的方法如下:
/**
* 从输入流中获取字节数组
* @param inputStream
* @return
* @throws IOException
*/
private static byte[] readInputStream(InputStream inputStream) throws IOException {
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
while((len = inputStream.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
bos.close();
return bos.toByteArray();
}