【问题标题】:restfull multiple files downloadrestfull 多个文件下载
【发布时间】: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


【解决方案1】:

您可以返回由文件名索引的 Base64 编码文件内容列表作为响应。

例子:

{
    "file1.txt": "YW55IGNvbnRlbnQ=",
    "file2.txt": ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    相关资源
    最近更新 更多