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