我有一个类似下面的功能
public void function(ZipEntry zipEntry){
......
}
我想创建一个Rest Api,它将接受一个zip文件作为输入并从中创建一个ZipEntry并将其传递给此函数。我不知道如何创建一个rest api来接受一个zip文件。
请帮帮我。
答案 0 :(得分:1)
您可以使用以下方法定义:
@Post
@Consumes("application/zip")
public void foo(InputStream is) {...}
在方法体中,您可以使用ZipInputStream获取每个ZipEntry:
ZipInputStream zip = new ZipInputStream(is)
答案 1 :(得分:0)
可能下面的一些代码应该有效......
public class FileService extends Adapter
{
@GET
@Produces("application/xml")
public void serviceMethod(String fileName)
{
ZipEntry entry = new ZipEntry(fileName);
//call your method here
function(entry);
}
}
希望这对你有用..
答案 2 :(得分:0)
下面的代码对Jersy来说很合适。
@POST
@Path("/upload/zip")
@Consumes("multipart/form-data")
public Response uploadZippedFile(@FormDataParam("uploadFile") InputStream file) throws IOException {
OutputStream outpuStream = null;
try {
int read = 0;
byte[] bytes = new byte[1024];
outpuStream = new FileOutputStream(new File("D:\\Tests" + "test.zip"));
while ((read = file.read(bytes)) != -1) {
outpuStream.write(bytes, 0, read);
}
outpuStream.flush();
outpuStream.close();
} catch (IOException iox) {
iox.printStackTrace();
} finally {
if (outpuStream != null) {
try {
outpuStream.close();
} catch (Exception ex) {
}
}
}
return Response.status(201).build();
}
需要添加依赖项,
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.8</version>
</dependency>