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      @POST
23      @Path("single")
24      public FilePartObject showMultipartSingle(@MultipartFormParam("file") FilePart filePart) {
25          return new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue());
26      }
27  
28      @POST
29      @Path("multiple")
30      public FilePartObjects showMultipartMultiple(@MultipartFormParam("file") Collection<FilePart> fileParts) {
31          Collection<FilePartObject> objects = new ArrayList<FilePartObject>();
32          for (FilePart filePart : fileParts) {
33              objects.add(new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue()));
34          }
35          return new FilePartObjects(objects);
36      }
37  
38      @POST
39      @Path("config")
40      @MultipartConfigClass(MultipartResource.SmallMultipartConfig.class)
41      public FilePartObjects showMultipartConfig(@MultipartFormParam("file") Collection<FilePart> fileParts) {
42          Collection<FilePartObject> objects = new ArrayList<FilePartObject>();
43          for (FilePart filePart : fileParts) {
44              objects.add(new FilePartObject("file", filePart.isFormField(), filePart.getName(), filePart.getContentType(), filePart.getValue()));
45          }
46          return new FilePartObjects(objects);
47      }
48  
49  
50      @POST
51      @Path("fileName")
52      @InterceptorChain(MessageInterceptor.class)
53      public Message returnFileName(@MultipartFormParam("file") FilePart filePart) {
54          return new Message(filePart.getName());
55      }
56  
57      public static class SmallMultipartConfig implements MultipartConfig {
58          public long getMaxFileSize() {
59              return 10;
60          }
61  
62          public long getMaxSize() {
63              return 1000;
64          }
65      }
66  
67  }