Lagra bifogade formulär

När du lägger till bilagor i ett anpassat formulär lagras bilagorna på en tillfällig plats i CRX-databasen. För att vi ska kunna arbeta måste vi lagra de bifogade filerna på en ny plats i CRX.

OSGi-tjänsten skapas för att lagra de bifogade filerna på en ny plats i CRX-databasen. En ny filmappning skapas med den nya platsen för de bifogade filerna i CRX och returneras till det anropande programmet.
Följande är den FileMap som skickas till servern. Nyckeln är det adaptiva formulärfältet och värdet är den temporära platsen för den bifogade filen. På vår server extraherar vi den bifogade filen och sparar den på en ny plats i AEM och uppdaterar FileMap med den nya platsen

{
"guide[0].guide1[0].guideRootPanel[0].idDocumentPanel[0].idcard[0]": "idcard/CA-DriversLicense.pdf",
"guide[0].guide1[0].guideRootPanel[0].documentation[0].yourBankStatements[0].table1603552612235[0].Row1[0].tableItem11[0]": "tableItem11/BankStatement-Sept-2020.pdf"
}

Följande kod extraherar de bifogade filerna från begäran och lagrar dem under mappen /content/fettments

public String storeAFAttachments(JSONObject fileMap, SlingHttpServletRequest request) {
    JSONObject newFileMap = new JSONObject();
    try {
        Iterator keys = fileMap.keys();
        log.debug("The file map is " + fileMap.toString());
        while (keys.hasNext()) {
            String key = (String) keys.next();
            log.debug("#### The key is " + key);
            String attacmenPath = (String) fileMap.get((key));
            log.debug("The attachment path is " + attacmenPath);
            if (!attacmenPath.contains("/content/afattachments")) {
                String fileName = attacmenPath.split("/")[1];
                log.debug("#### The attachment name  is " + fileName);
                InputStream is = request.getPart(attacmenPath).getInputStream();
                Document aemFDDocument = new Document(is);
                String crxPath = saveDocumentInCrx("/content/afattachments", fileName, aemFDDocument);
                log.debug(" ##### written to crx repository  " + attacmenPath.split("/")[1]);
                newFileMap.put(key, crxPath);
            } else {
                log.debug("$$$$ The attachment was already added " + key);
                log.debug("$$$$ The attachment path is " + attacmenPath);
                int position = attacmenPath.indexOf("//");
                log.debug("$$$$ After substring " + attacmenPath.substring(position + 1));
                log.debug("$$$$ After splitting " + attacmenPath.split("/")[1]);
                newFileMap.put(key, attacmenPath.substring(position + 1));
            }
        }
    } catch (Exception ex) {
        log.debug(ex.getMessage());
    }
    return newFileMap.toString();

}


}

Det här är den nya FileMap-filen med den uppdaterade platsen för formulärbilagorna

{
"guide[0].guide1[0].guideRootPanel[0].idDocumentPanel[0].idcard[0]": "/content/afattachments/7dc0cbde-404d-49a9-9f7b-9ab5ee7482be/CA-DriversLicense.pdf",
"guide[0].guide1[0].guideRootPanel[0].documentation[0].yourBankStatements[0].table1603552612235[0].Row1[0].tableItem11[0]": "/content/afattachments/81653de9-4967-4736-9ca3-807a11542243/BankStatement-Sept-2020.pdf"
}

Nästa steg

Spara formulärdata

recommendation-more-help
8de24117-1378-413c-a581-01e660b7163e