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.

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

Avatar

Level 6

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/SlingHttpServletRequ... 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

3 Replies

Avatar

Level 3

Hi Clive,

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

 

Thanks,

Sai

Avatar

Level 9

Hi Clive,

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

Thanks,

Avatar

Level 1

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>

```