Using request.getParts() in AEM servlet to get multiple files sent via an AJAX POST | Community
Skip to main content
Level 6
October 25, 2016

Using request.getParts() in AEM servlet to get multiple files sent via an AJAX POST

  • October 25, 2016
  • 2 replies
  • 3217 views

Hi,

I am trying to read multiple files as attachments sent by a POST to my AEM servlet. I need to read each file and then pass them on to a call to AWS Api Gateway.

Looking at the API documentation https://docs.adobe.com/docs/en/aem/6-0/develop/ref/javadoc/org/apache/sling/api/SlingHttpServletRequest.html it says it inherits method getParts() from javax.servlet.http.HttpServletRequest.

In http://docs.oracle.com/javaee/6/tutorial/doc/gmhba.html it says I can use something like

Collection<Part> parts = request.getParts("file");

However in Eclipse runing my project on Maven Aem archetype 10, I cannot access Part unless I use
Collection<javax.servlet.http.Part> parts but the SlingHttpServletRequest object does not have access to getParts();

Am I approaching this incorrectly in AEM?

I have been working with AEM for 2 years now, but I have never had to read Multiple attachments before.

Regards

Clive Stewart

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

2 replies

nvssr90
Level 2
May 25, 2017

Hi Clive,

Any luck on this one..Even I have same requirement,

 

Thanks,

Sai

MC_Stuff
Level 10
May 26, 2017

Hi Clive,

Since SlingHttpServletRequest inherts HttpServletRequest you can use getParts().  Are you getting any error Or method not found?

Thanks,

stuarts51930720
September 12, 2017

I think the problem is the Servlet API version.   The oracle doc starts "Servlet 3.0 supports".  I think the interface that is being pulled in is an earlier version of the Servlet API.  I don't know if the AEM uber jar has Servlet 3.x apis.

The Adobe repo does not have Servlet API 3.0 . Here is the list from the repo (as of today):

```

<metadata modelVersion="1.1.0">

  <groupId>javax.servlet</groupId>

  <artifactId>servlet-api</artifactId>

  <versioning>

   <latest>2.5</latest>

   <release>2.5</release>

   <versions>

   <version>2.3</version>

   <version>2.4</version>

   <version>2.5</version>

   </versions>

   <lastUpdated>20130711152914</lastUpdated>

  </versioning>

</metadata>

```