Hello,
Could some help me on the below and provide me with pointers.
I have multipart form data being feed to servlet in the below JSON format.
My need is to read this and send the file and JSON data to another endpoint in the same JSON format with encoding of few values
Form JSON data to servlet:-
{
"param1": "value1",
"parm2": "value2",
"josnobjectParam1": {
"jsonobjparam1": "value3",
"jsonobjparam2": "value4"
},
"josnobjectParam2": {
"jsonobjparam3": "value5",
"jsonobjparam4": "value6"
},
"filesent": [
{filename: "name.pdf"}
]
}
A>How could I achieve it.
In the servlet ,I am trying to read the json form data using request.getRequestParameterMap and adding it to MultipartEntityBuilder . Now when reading the value of josnobjectParam1 and josnobjectParam2 it shows as object .How to read the values inside it .For example the key jsonobjparam1 and its value
I was using the below link as reference
https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/bundle/src/main/java/com/ad...
MultipartEntityBuilder requestEntity = MultipartEntityBuilder.create();
Map < String, RequestParameter[] > requestParameters = request.getRequestParameterMap();
for (final Map.Entry < String, RequestParameter[] > entry: requestParameters.entrySet()) {
RequestParameter[] reqParam = entry.getValue();
if ("josnobjectParam1".equals(entry.getKey()) || "josnobjectParam2".equals(entry.getKey())) {
for (RequestParameter fileParam: reqParam) {
/** Here how to read the jsonobjparam1 , jsonobjparam2 ,jsonobjparam3 ,jsonobjparam4
Also will need to encode the value3,value4,value5,value6 before adding to requestEntity**/
String paramValue = StringUtils.defaultIfBlank(String.valueOf(reqParam[0]), StringUtils.EMPTY);
requestEntity.addPart(entry.getKey(), paramValue);
}
}
}
b> Now need to send the MultipartEntityBuilder data to other end point in JSON format , how to achieve it
I was using the below link as reference
https://gist.github.com/damianmcdonald/b720d9798e0d84092bbd#L39
requestEntity.addTextBody("characterProfile", jsonToSend.toString(), ContentType.APPLICATION_JSON);
can we add like the above and send to another endpoint .please clarify and also I would want to just send the JSON data without any key is that possible so that it is sent as object
{
"param1": "value1",
"parm2": "value2",
"josnobjectParam1": {
"jsonobjparam1": "value3",
"jsonobjparam2": "value4"
},
"josnobjectParam12": {
"jsonobjparam3": "value5",
"jsonobjparam4": "value6"
},
}
Thanks,
Srinivas
Solved! Go to Solution.
Views
Replies
Total Likes
You can send the file data in the form of form-data like this:
if(ajaxfile.files[0] !== undefined)
{
formData.append("file", ajaxfile.files[0]);
}
your ajax call should be like this
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: path,
data: formData,
processData: false,
contentType: false,
cache: false,
success: function (data) {},
error: function (data, status, er) {}
});
Read the value in the servlet like this:
Part filePart = request.getPart("file");
if (filePart != null) {
}
}
Hope it helps!
Thanks,
Kiran Vedantam
Any inputs on this from any one??
Thanks
You can send the file data in the form of form-data like this:
if(ajaxfile.files[0] !== undefined)
{
formData.append("file", ajaxfile.files[0]);
}
your ajax call should be like this
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: path,
data: formData,
processData: false,
contentType: false,
cache: false,
success: function (data) {},
error: function (data, status, er) {}
});
Read the value in the servlet like this:
Part filePart = request.getPart("file");
if (filePart != null) {
}
}
Hope it helps!
Thanks,
Kiran Vedantam
Views
Likes
Replies
Views
Likes
Replies