View Javadoc
1   package media;
2   
3   import javax.enterprise.context.ApplicationScoped;
4   import javax.inject.Inject;
5   import javax.validation.constraints.NotBlank;
6   import java.io.BufferedInputStream;
7   import java.io.IOException;
8   import java.io.InputStream;
9   import java.net.URLConnection;
10  
11  /**
12   * Classe contenente la logica per il recupero di immagini da unità persistenti
13   */
14  @ApplicationScoped
15  public class ImageService {
16      private MediaRepository mediaRepository;
17  
18      protected ImageService(){}
19  
20      @Inject
21      protected ImageService(MediaRepository mediaRepository){
22          this.mediaRepository = mediaRepository;
23      }
24  
25      /**
26       * Ritorna l'input stream di un immagine
27       * @param filename nome dell'immagine
28       * @return input stream dell'immagine
29       * @throws IOException
30       */
31      public InputStream getImage(@NotBlank String filename) throws IOException {
32          InputStream inputStream = mediaRepository.get(filename);
33          if(inputStream == null)
34              return null;
35  
36          inputStream = new BufferedInputStream(inputStream);
37          String mimetype = URLConnection.guessContentTypeFromStream(inputStream);
38          if(mimetype == null || !mimetype.startsWith("image/"))
39              return  null;
40  
41          return inputStream;
42      }
43  }