Richfaces rich:FileUpload : NullPointerException
Bonjour,
J'ai un soucis avec le composant rich:fileupload.
Voici le code dans la page JSF
Code:
1 2 3 4 5 6 7 8
|
<rich:fileUpload fileUploadListener="#{fileUploadBean.listener}"
maxFilesQuantity="#{fileUploadBean.uploadsAvailable}"
id="upload"
immediateUpload="#{fileUploadBean.autoUpload}"
acceptedTypes="jpg, gif, png, bmp" allowFlash="#{fileUploadBean.useFlash}">
</rich:fileUpload> |
:
la classe FileUploadBean :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
public class FileUploadBean{
private static Logger logger = Logger.getLogger(FileUploadBean.class);
private ArrayList<File> files = new ArrayList<File>();
private int uploadsAvailable = 5;
private boolean autoUpload = true;
private boolean useFlash = false;
public int getSize() {
if (getFiles().size()>0){
return getFiles().size();
}else
{
return 0;
}
}
public FileUploadBean() {
}
public void listener(UploadEvent event) throws Exception{
if (event == null) {
logger.warn("Invalid upload event");
} else {
// on recupere l'item envoye
UploadItem uploadItem = event.getUploadItem();
if (uploadItem.getFile().isFile()) { // si c'est bien un fichier
String repo = "C:";
// a vous d'adapter a votre
//code ici on recupere le path vers le repertoire ou stocker le fichier
File fileToWrite = new File(repo + File.separator + uploadItem.getFileName());
// on construit un Fichier avec le path/nomdufichierrecu
File uploadedFile = uploadItem.getFile();
FileChannel in = null; // on va utiliser deux files channel pour faire la recopie
FileChannel out = null;
try {
in = new FileInputStream(uploadedFile).getChannel();
out = new FileOutputStream(fileToWrite).getChannel();
in.transferTo(0, in.size(), out);
// on recopie le fichier en entree dans le repertoire voulu
//availableFileList.add(new FileUpload(fileToWrite.getName(), false));
// ici FileUpload est une classe interne
// au projet contenant simplement les donnees propres au fichier
//mais on porurait ajouter le nom simplement a
//une liste de String
//logger.debug("ADDED : #0", availableFileList.get(availableFileList.size() - 1).getFileName());
//logger.debug("fileUploadListener : LIST SIZE #0", availableFileList.size());
} catch (IOException ex1) {
// recuperations des exceptions possibles
logger.error("Error while copying the file.");
} finally { // fermeture des filechannel
if (in != null) {
try {
in.close();
} catch (IOException ex2) {
logger.error("Can't close input file channel");
}
if (out != null) {
try {
out.close();
} catch (IOException ex3) {
logger.error("Can't close ouput file channel");
}
}
}
}
}
}
}
} |
L'erreur se produit sur la ligne :
Code:
if (uploadItem.getFile().isFile())
Y aurait-il une âme charitable qui puisse m'aider à résoudre mon soucis ?
Merci