You could use streams.Try something like this on the client: InputStream fileInStream = new FileInputStream(fileName); String sContentDisposition = “attachment; filename=\”” + fileName.getName()+”\””; WebResource fileResource = a_client.resource(a_sUrl); ClientResponse response = fileResource.type(MediaType.APPLICATION_OCTET_STREAM) .header(“Content-Disposition”, sContentDisposition) .post(ClientResponse.class, fileInStream); with resource like this on the server: @PUT @Consumes(“application/octet-stream”) public Response putFile(@Context HttpServletRequest a_request, @PathParam(“fileId”) long a_fileId, InputStream a_fileInputStream) throws Throwable … Read more