Galera, eu recebo uma imagem do tipo File da minha jsp que foi selecionada pelo usuário.
Como eu faria pra validar esse File, podendo ser jpg, png e gif?
toda a imagem tem um cabeçalho… basta ler a imagem e ver qual cabeçalho é referente a certa imagem…
o google pode te ajudar a identificar os tipos de cabeçalhos de imagens…
Assim como comentado acima você pode utilizar o cabeçalho para verificar que imagem veio pelo formulário ou capturar a extensão.
Também pode validar a extensão via JavaScript.
Talvez funcione. Mas dá pra deixar mais robusta.
Javascript
var file = this.files[0];
if (file != null) {
if (file.size <= 16384 && file.type == 'image/jpeg' || file.type == 'image/png' || file.type == 'image/gif') {
// arquivo válido
} else {
// arquivo inválido
}
}
Java
@MultipartConfig(maxRequestSize = 65536, maxFileSize = 16384)
class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, java.io.IOException{
Part file = getPart("arquivo");
if (file != null) {
if (" image/gif image/jpeg image/png ".contains(file.getContentType())) {
// arquivo válido
} else {
// arquivo inválido
}
} else {
// não tem arquivo nenhum.
}
}