/*
* Copyright (C) 2013 Martin Fousek & Mert Caliskan
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package javaone.con3638.fileupload;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import javax.inject.Named;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.servlet.http.Part;
@Named(value = "validatedFileUploadBean")
@RequestScoped
public class ValidatedFileUploadBean {
private Part file;
public Part getFile() {
return file;
}
public void setFile(Part file) {
this.file = file;
}
public void validateFile(FacesContext ctx, UIComponent comp, Object value) {
List<FacesMessage> msgs = new ArrayList<>();
Part file = (Part) value;
if (file.getSize() > 1024) {
msgs.add(new FacesMessage("file is too big dude!"));
}
if (!msgs.isEmpty()) {
throw new ValidatorException(msgs);
}
}
public void upload() {
try {
String fileContent = new Scanner(file.getInputStream()).next();
// do some crazy stuff on content
}
catch (IOException e) {
System.err.print(e);
}
}
}