While uploading PDF/text file using JERSEY client, extra information is being appended to the original pdf file.(I an using Jersey Glassfish API for Client)
Below is the extra content which is getting appended to the original file when saved in server:
--Boundary_1_10166575_1464163574882
Content-Type: text/plain
Content-Disposition: form-data; name="foo" bar
--Boundary_1_10166575_1464163574882
Content-Type: application/pdf
Content-Disposition: form-data; filename="ABC.pdf"; modification-date="Tue, 03 May 2016 06:34:59 GMT"; size=109494; name="inputPdfFile"
========================================================================= Refer the below Client Source Code:
final Client client = ClientBuilder.newBuilder()
.register(MultiPartFeature.class).build();
final FileDataBodyPart filePart = new FileDataBodyPart(
"inputPdfFile", new File(
"C:/Test/ABC.pdf"));
FormDataMultiPart formDataMultiPart = new FormDataMultiPart();
final FormDataMultiPart multipart = (FormDataMultiPart) formDataMultiPart
.field("foo", "bar").bodyPart(filePart);
final WebTarget target = client
.target("http://localhost:7001/RestFulService/resources/pdfUploadTest");
final Response response = target.request().post(
Entity.entity(multipart, multipart.getMediaType()));
======================================================================== Refer the below Server Source Code:
@POST
@Path("/pdfUploadTest")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("inputPdfFile") InputStream encodedPdfData,
@FormDataParam("inputPdfFile") FormDataContentDisposition fileDetail) {
OutputStream out = new FileOutputStream(new
File("C:/Test/success.pdf"));
byte[] byteArray = new byte[1024];
if (null != encodedPdfData) {
while ((x = encodedPdfData.read(byteArray)) != -1) {
out.write(byteArray,0,x);
}
}
out.flush();
out.close();
}