View Javadoc

1   package com.atlassian.plugins.rest.multipart;
2   
3   import com.atlassian.plugins.rest.common.interceptor.InterceptorChain;
4   import com.atlassian.plugins.rest.common.multipart.FilePart;
5   import com.atlassian.plugins.rest.common.multipart.MultipartConfig;
6   import com.atlassian.plugins.rest.common.multipart.MultipartConfigClass;
7   import com.atlassian.plugins.rest.common.multipart.MultipartFormParam;
8   import com.atlassian.plugins.rest.common.security.AnonymousAllowed;
9   import com.atlassian.plugins.rest.interceptor.Message;
10  import com.atlassian.plugins.rest.interceptor.MessageInterceptor;
11  
12  import java.util.ArrayList;
13  import java.util.Collection;
14  import javax.ws.rs.POST;
15  import javax.ws.rs.Path;
16  
17  /**
18   */
19  @Path ("/multipart")
20  @AnonymousAllowed
21  public class MultipartResource
22  {
23      @POST
24      @Path("single")
25      public FilePartObject showMultipartSingle(@MultipartFormParam("file")FilePart filePart)
26      {
27          return new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue());
28      }
29  
30      @POST
31      @Path("multiple")
32      public FilePartObjects showMultipartMultiple(@MultipartFormParam("file") Collection<FilePart> fileParts)
33      {
34          Collection<FilePartObject> objects = new ArrayList<FilePartObject>();
35          for (FilePart filePart : fileParts)
36          {
37              objects.add(new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue()));
38          }
39          return new FilePartObjects(objects);
40      }
41  
42      @POST
43      @Path("config")
44      @MultipartConfigClass(MultipartResource.SmallMultipartConfig.class)
45      public FilePartObjects showMultipartConfig(@MultipartFormParam("file") Collection<FilePart> fileParts)
46      {
47          Collection<FilePartObject> objects = new ArrayList<FilePartObject>();
48          for (FilePart filePart : fileParts)
49          {
50              objects.add(new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue()));
51          }
52          return new FilePartObjects(objects);
53      }
54  
55  
56      @POST
57      @Path("fileName")
58      @InterceptorChain(MessageInterceptor.class)
59      public Message returnFileName(@MultipartFormParam("file") FilePart filePart)
60      {
61          return new Message(filePart.getName());
62      }
63  
64      public static class SmallMultipartConfig implements MultipartConfig
65      {
66          public long getMaxFileSize()
67          {
68              return 10;
69          }
70  
71          public long getMaxSize()
72          {
73              return 1000;
74          }
75      }
76  
77  }