休息服务:使用以下方法下载多个Zip文件的问题:ResponseBuilder

时间:2017-07-28 15:09:29

标签: java spring rest zip


我实现了一个Rest服务来从目录中下载文件。
**有我的休息服务:这里没问题**

@GET
@Path("/download")
@Produces("application/zip")
public Response downloadZippedFile() {

        File file = new 
File("C:/Users/Desktop/Files/201707111513.zip");
        ResponseBuilder responseBuilder = Response.ok((Object) file);
        responseBuilder.header("Content-Disposition", "attachment; 
filename=\"MyJerseyZipFile.zip\"");
        return responseBuilder.build();
}

Résult==> 我可以从浏览器下载201707111513.zip。
----------------------------------------------- -
现在,我正在尝试下载多个.zip文件。 会导致问题
我的第二次休息服务:主要问题

@GET
@Path("/download")
@Produces("application/zip")
public Response downloadZippedFile() {
    ArrayList<String> PdfInputListFiles = new ArrayList<>();

    PdfInputListFiles.add("C:/Users/Desktop/Files/201707111513.zip");
    PdfInputListFiles.add("C:/Users/Desktop/Files/201707111514.zip");
    PdfInputListFiles.add("C:/Users/Desktop/Files/201707111515.zip");


    // to print every file in every PdfInputListFiles 
    for (String myFile : PdfInputListFiles) {

        File file = new File(myFile);
        ResponseBuilder responseBuilder = Response.ok((Object) file);
        responseBuilder.header("Content-Disposition", "attachment; filename=\"MyJerseyZipFile.zip\"");
        return responseBuilder.build();

    }
    return null;
}

Résult==&gt; 我只能下载第一个文件201707111513.zip。
并且这是在For循环结束时返回responseBuilder.build()行的原因。
----------------------------------------------- -
现在,我正在试着这个:

@GET
@Path("/download")
@Produces("application/zip")
public Response downloadZippedFile() {
    ArrayList<String> PdfInputListFiles = new ArrayList<>();

    PdfInputListFiles.add("C:/Users/Desktop/Files/201707111513.zip");
    PdfInputListFiles.add("C:/Users/Desktop/Files/201707111514.zip");
    PdfInputListFiles.add("C:/Users/Desktop/Files/201707111515.zip");


    // to print every file in every PdfInputListFiles 
    for (String myFile : PdfInputListFiles) {

        getFile(myFile);

    }
    return null;
}

public Response getFile(String str) {
    // Response response = null;
    File file = new File(str);
    ResponseBuilder responseBuilder = Response.ok((Object) file);
    responseBuilder.header("Content-Disposition", "attachment; filename=\"MyJerseyZipFile.zip\"");
    return responseBuilder.build();
}

Résult==&gt; 没有下载,我无法理解为什么调用getFile方法不会返回任何下载的文件。
** 我需要在我的列表中下载evry文件,换句话说我有多个路径,我需要下载所有这些文件。
SomeOne可以提供帮助,或建议替代解决方案!
谢谢

0 个答案:

没有答案