1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.ui.form.field.upload;
35
36 import info.magnolia.cms.util.PathUtil;
37 import info.magnolia.i18nsystem.SimpleTranslator;
38
39 import java.io.File;
40 import java.io.OutputStream;
41
42 import javax.inject.Inject;
43
44 import org.apache.commons.lang3.StringUtils;
45 import org.vaadin.easyuploads.FileBuffer;
46 import org.vaadin.easyuploads.FileFactory;
47 import org.vaadin.easyuploads.UploadField.FieldType;
48
49
50
51
52
53
54 public class UploadReceiver extends FileBuffer {
55
56 private static final long serialVersionUID = 1L;
57 private File directory;
58 private final SimpleTranslator i18n;
59 public static final String INVALID_FILE_NAME = "untitled";
60 private String fileName;
61
62 @Inject
63 public UploadReceiver(File directory, SimpleTranslator i18n) {
64 this.directory = directory;
65 this.i18n = i18n;
66 setFieldType(FieldType.FILE);
67 setDeleteFiles(true);
68 }
69
70 @Override
71 public OutputStream receiveUpload(String filename, String MIMEType) {
72 setFileName(filename);
73 return super.receiveUpload(filename, MIMEType);
74 }
75
76 @Override
77 public FileFactory getFileFactory() {
78 return new DefaultFileFactory(directory, i18n);
79 }
80
81 public String getFileName() {
82 if (StringUtils.isBlank(this.fileName) || StringUtils.isBlank(PathUtil.getExtension(this.fileName))) {
83 return INVALID_FILE_NAME;
84 }
85 return this.fileName;
86 }
87
88 public long getFileSize() {
89 return this.getFile() != null ? this.getLastFileSize() : 0l;
90 }
91
92 public String getMimeType() {
93 return this.getLastMimeType();
94 }
95
96 public String getExtension() {
97 return PathUtil.getExtension(getFileName());
98 }
99
100 public void setFileName(String fileName) {
101 this.fileName = fileName;
102 }
103
104 }