Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

how to pass file from jquery to servlet in aem?

Avatar

Level 4

Hi,

Can anyone help me out in this usecase where attachments are sent as email in aem. I am stuck at a point on how to pass file from jquery ajax to servlet and then passing it as parameter to emailService.

Joerg HohArun Patidarsmacdonald2008

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

In jquery you can pass the file path and read file in Servlet and convert in InputStream and use inside your map

File file = new File(filePath);

InputStream is = new FileInputStream(file);

ByteArrayDataSource(InputStream is, String type)

Email

Email API

String attachment1 = "This text should be in the attache txt file.";
  Map<String, DataSource> attachments = new HashMap<>();
  attachments.put("attachment1.txt", new ByteArrayDataSource(attachment1, "text/plain"));



Arun Patidar

View solution in original post

3 Replies

Avatar

Level 7

Hi,

what you can try to do is to encode your file in base64 and then send it as a string parameter into your servlet.

Inside your servlet you just need to use some snippet like the following:

Base64.getDecoder().decode(fileBase64)

In order to get the file and decode it into your serlvet.

Let me know if this could be helpful.

Thanks,

Antonio

Avatar

Correct answer by
Community Advisor

In jquery you can pass the file path and read file in Servlet and convert in InputStream and use inside your map

File file = new File(filePath);

InputStream is = new FileInputStream(file);

ByteArrayDataSource(InputStream is, String type)

Email

Email API

String attachment1 = "This text should be in the attache txt file.";
  Map<String, DataSource> attachments = new HashMap<>();
  attachments.put("attachment1.txt", new ByteArrayDataSource(attachment1, "text/plain"));



Arun Patidar