package org.javaee7.jaxrs.fileupload;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
* @author Xavier Coulon
*/
@Path("/endpoint")
public class MyResource {
@POST
@Path("/upload")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
@Produces(MediaType.TEXT_PLAIN)
public Response postOctetStream(InputStream content) {
try (Reader reader = new InputStreamReader(content)) {
int totalsize = 0;
int count = 0;
final char[] buffer = new char[256];
while ((count = reader.read(buffer)) != -1) {
totalsize += count;
}
return Response.ok(totalsize).build();
} catch (IOException e) {
e.printStackTrace();
return Response.serverError().build();
}
}
@POST
@Path("/upload2")
@Consumes({ MediaType.APPLICATION_OCTET_STREAM, "image/png" })
@Produces(MediaType.TEXT_PLAIN)
public Response postImageFile(File file) {
try (Reader reader = new FileReader(file)) {
int totalsize = 0;
int count = 0;
final char[] buffer = new char[256];
while ((count = reader.read(buffer)) != -1) {
totalsize += count;
}
return Response.ok(totalsize).build();
} catch (IOException e) {
e.printStackTrace();
return Response.serverError().build();
}
}
}