I am trying to write Resteasy Client Class to make simple POST multipart/form-data request to upload file. So POST request must contain Content-Disposition: form-data; name="files"; filename="myfile.txt"
parameters.
I am able to set this statically with @PartFilename annotation for field in entity (value) class. like this
public class UploadStreamMultipartBody {
@FormParam("files")
@PartFilename(value = "myfile.txt")
@PartType(MediaType.APPLICATION_OCTET_STREAM)
public InputStream file;
}
But I cannot realize how to make it dynamically so I can provide file name in RUNTIME 🤔 Cause annotation value is read once in compile time.
Use MultipartFormDataOutput
instead.
Interface example:
@POST
@Path("/document-store")
@Consumes(MediaType.MULTIPART_FORM_DATA)
void uploadDocument(@MultipartForm MultipartFormDataOutput data);
Usage:
var form = new MultipartFormDataOutput();
form.addFormData(/*key=*/"file", inputStream, new MediaType("application", "pdf"), fileName);
documentStoreClient.uploadDocument(form);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With