package org.restler.spring.mvc.files;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
public class RestlerMultipartFile implements MultipartFile {
private final String name;
private final File file;
private final String contentType;
public RestlerMultipartFile(String name, File file, String contentType) {
this.name = name;
this.file = file;
this.contentType = contentType;
}
@Override
public String getName() {
return name;
}
@Override
public String getOriginalFilename() {
return file.getName();
}
@Override
public String getContentType() {
return contentType;
}
@Override
public boolean isEmpty() {
return getSize() == 0;
}
@Override
public long getSize() {
return file.length();
}
@Override
public byte[] getBytes() throws IOException {
InputStream inputStream = getInputStream();
byte[] buffer = new byte[8192];
int bytesRead;
ByteArrayOutputStream output = new ByteArrayOutputStream();
while ((bytesRead = inputStream.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
return output.toByteArray();
}
@Override
public InputStream getInputStream() throws IOException {
return new FileInputStream(file);
}
@Override
public void transferTo(File dest) throws IOException, IllegalStateException {
throw new UnsupportedOperationException();
}
}