How to get File Attachments from adobe adaptive form to maven project?
Solved! Go to Solution.
Views
Replies
Total Likes
This is an easier and recommended way to get hold of the AF attachments on form submission. Please follow the steps mentioned below
Down load the sample bundle and deploy it using web console in AEM
Import the Sample Package using package manager. This package has the custom submit
Import the Sample Adaptive Form using the package manager. This adaptive form is configured to submit to the custom submit handler called
"handleafsubmission"
Preview the Test Attachments form . Add a couple of attachments and submit
The attachments will be written to the folder of your AEM installation
I have deleted my earlier response since this is the recommended approach
Views
Replies
Total Likes
Views
Replies
Total Likes
Views
Replies
Total Likes
the original answer has been removed. Please follow the steps mentioned elsewhere in this post
Views
Replies
Total Likes
Views
Replies
Total Likes
You can decompile using any java decompiler online
there is interface and servlet that makes up the code
Views
Replies
Total Likes
The code for the service user is listed in the following link
Views
Replies
Total Likes
Views
Replies
Total Likes
package com.aemforms.handleafsubmission.core.servlets;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.request.RequestParameter;
import org.apache.sling.api.request.RequestParameterMap;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.adobe.aemfd.docmanager.Document;
@component(service = {
Servlet.class
}, property = {
"sling.servlet.methods=get",
"sling.servlet.methods=post",
"sling.servlet.paths=/bin/getsubmitteddata"
})
public class GetSubmittedData extends SlingAllMethodsServlet {
Logger logger = LoggerFactory.getLogger(GetSubmittedData.class);
private static final long serialVersionUID = -8884406699033680092 L;
protected void doPost(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException {
// get the submitted form data
String submittedData = request.getParameter("jcr:data");
logger.debug(submittedData);
RequestParameterMap requestParameterMap = request.getRequestParameterMap();
for (Map.Entry < String, RequestParameter[] > pairs: requestParameterMap.entrySet()) {
final org.apache.sling.api.request.RequestParameter[] pArr = pairs.getValue();
final org.apache.sling.api.request.RequestParameter param = pArr[0];
if (!param.isFormField()) {
try {
logger.debug("Got attachment!!!!" + param.getFileName());
InputStream is = param.getInputStream();
Document attachment = new Document(is);
attachment.copyToFile(new File(param.getFileName().split("/")[1]));
attachment.close();
} catch (IOException e) {
logger.debug(e.getMessage());
}
}
}
}
}
This is an easier and recommended way to get hold of the AF attachments on form submission. Please follow the steps mentioned below
Down load the sample bundle and deploy it using web console in AEM
Import the Sample Package using package manager. This package has the custom submit
Import the Sample Adaptive Form using the package manager. This adaptive form is configured to submit to the custom submit handler called
"handleafsubmission"
Preview the Test Attachments form . Add a couple of attachments and submit
The attachments will be written to the folder of your AEM installation
I have deleted my earlier response since this is the recommended approach
Views
Replies
Total Likes