【发布时间】:2017-02-23 11:02:25
【问题描述】:
我需要在一次调用中向客户端提供多个文件,我不想将这些文件放在一个 zip 中。 发送给客户端的文件很小,只有几个 ko。 我将 JAX-RS 用于 restfull 服务,客户端使用 javascript 来处理响应。 我应该将其作为文件还是流发送,我的文件是缩略图,我的客户是移动设备,他们需要这些图片来显示它们。
我已经提供了一个获取单个文件的 URL:
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response downloadFile(String fileName) {
File file = ... // Find your file
return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM)
.header("Content-Disposition", "attachment; filename=\"" + file.getName() + "\"")
.build();
}
我可以发送一个文件列表 Response.ok(myList),客户端可以处理这样构造的响应吗?
【问题讨论】:
-
返回一个按文件名索引的 Base64 编码文件内容列表作为响应怎么样?
-
你到底是什么意思?我将整个文件的内容编码在一个 base64 编码文件中,并且对于每个编码部分,我也为其加上文件名 base64 编码前缀,这就是你的意思?如果是这样,那么我如何区分图像的内容及其文件名?因此客户端可以解码整个内容并正确提取图像。
-
您返回一个 JSON 对象,其中文件名作为键,base64 编码的文件内容作为值。每个条目是一个文件。
-
好的 Thomas.mc.work 我知道了,谢谢。
-
很高兴听到这个消息!我只是将其添加为下面的正确答案。
标签: javascript java file download jax-rs