Demo Code in WordPress

XML Code

<?xml version="1.0" encoding="UTF-8"?>
<api context="/getFile" name="getFile" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="GET">
        <inSequence>
            <call>
                <endpoint>
                    <http method="get" uri-template="https://yossishalom.com/wp-content/uploads/2022/04/test.pdf">
                    </http>
                </endpoint>
            </call>
            <property name="transport.vfs.ReplyFileName" scope="transport" type="STRING" value="test.pdf"/>
            <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
            <call>
                <endpoint>
                    <address uri="vfs:file:///c:/WSO2Folder/OUTPUT/">
                    </address>
                </endpoint>
            </call>
            <respond/>
        </inSequence>
        <outSequence/>
        <faultSequence/>
    </resource>
</api>

JavaScript Code

<script language="nashornJs"><![CDATA[var log = mc.getServiceLog();
	var clientFiles = [];
	var attachments = new Array;

	var attachmentNum = -1;
	
	if (mc.getProperty("base64FileFiles"))
	{
		clientFiles = JSON.parse(mc.getProperty("base64FileFiles"));
		for (i = 0; i < clientFiles.length; ++i) {
			attachmentNum = attachmentNum + 1;
			attachment = new Object();
			attachment.name = clientFiles[i].fileName;
			var base64File = clientFiles[i].base64;
			var base64DataObj = base64File.split(',');
			attachment.content = base64DataObj[1];
			attachments[attachmentNum] = attachment;
		}
	}
	else{
		log.info("********** didnt get base64FileFiles **************");
	}
	
	if (mc.getProperty("base64FileFiles_2")){
		clientFiles_2 = JSON.parse(mc.getProperty("base64FileFiles_2"));
		for (i = 0; i < clientFiles_2.length; ++i) {
			attachmentNum = attachmentNum + 1;
			attachment = new Object();
			attachment.name = clientFiles_2[i].fileName;
			var base64File = clientFiles_2[i].base64;
			var base64DataObj = base64File.split(',');
			attachment.content = base64DataObj[1];
			attachments[attachmentNum] = attachment;
		}
	}
	else{
		log.info("********** didnt get base64FileFiles_2 **************");
	}
	
	mc.setProperty("attachmentFiles",JSON.stringify(attachments));]]>
</script>