2016-04-18 6 views
1

Ich habe dieses Modell in meiner Anwendung und ich ein Bild/svg + xml meinen Server hochladen:Wie validiere ich den Mime-Typ des Bildes in einem Model in SpringMVC mit Annotation?

public class ImageModel{ 

    private Integer Id; 

    @NotEmpty 
    @Pattern(regexp = "^[a-zA-Z0-9äöüÄÖÜ\\d\\-_\\s]+$") 
    private String name; 

    //here some annotation to check the mimetype of this byte array 
    private byte[] data; 
} 

Gibt es eine Möglichkeit, den MIME-Typen der Felddaten, hier in meinem Modell mit Anmerkungen direkt zu validieren ?

+0

Mime-Typen von Byte-Array? Was genau meinst du? – dosdebug

+0

Ich lade mein Bild von meinem HTML-Formular als Byte-Array hoch. – Suisse

+0

haben Sie versucht, die Annotation @ Consumes zu verwenden? siehe: https://docs.oracle.com/cd/E19798-01/821-1841/gipzh/index.html – Ronin

Antwort

0

ich keine Lösung für das Modell @Annotations finden konnte, ich löste es durch die Validierungsprüfung in meinem Controller tun:

 InputStream is = new BufferedInputStream(new ByteArrayInputStream(myByteArray)); 
      String mimeType = URLConnection.guessContentTypeFromStream(is); 

      if (mimeType == null){ 
       result.addError(new ObjectError("file", "Only SVG allowed!")); 
      }else if(mimeType != null && !mimeType.equalsIgnoreCase("application/xml")){ 
       result.addError(new ObjectError("file", "Sorry Bro, only SVG allowed!")); 
      } 
if (result.hasErrors()) { 
      // send back to edit form 
      model.addAttribute("uploadForm", data); 
      return "image/editPage"; 
     }