ImageService.java
package media;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.validation.constraints.NotBlank;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLConnection;
/**
* Classe contenente la logica per il recupero di immagini da unità persistenti
*/
@ApplicationScoped
public class ImageService {
private MediaRepository mediaRepository;
protected ImageService(){}
@Inject
protected ImageService(MediaRepository mediaRepository){
this.mediaRepository = mediaRepository;
}
/**
* Ritorna l'input stream di un immagine
* @param filename nome dell'immagine
* @return input stream dell'immagine
* @throws IOException
*/
public InputStream getImage(@NotBlank String filename) throws IOException {
InputStream inputStream = mediaRepository.get(filename);
if(inputStream == null)
return null;
inputStream = new BufferedInputStream(inputStream);
String mimetype = URLConnection.guessContentTypeFromStream(inputStream);
if(mimetype == null || !mimetype.startsWith("image/"))
return null;
return inputStream;
}
}