Où le fichier téléchargé p: fileUpload est-il sauvegardé et comment puis-je le changer?
- Je utiliser le simple Fichier de téléchargement de Primefaces en cours de développement avec Netbeans. Mon exemple de test est similaire à la Primefaces manuel.
Ma question: d'où vient le fichier téléchargé sur mon ordinateur local? Comment puis-je modifier le chemin d'accès? Thx!
Le fichier jsf:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Page test</title>
</h:head>
<h:body>
Hello! My first JSF generated page!
<h:form enctype="multipart/form-data">
<p:fileUpload value="#{fileBean.file}" mode="simple" />
<p:commandButton value="Submit" ajax="false"/>
</h:form>
</h:body>
</html>
et le managed bean:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
@ManagedBean
@RequestScoped
public class FileBean {
private UploadedFile file;
public FileBean() {
}
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
}
source d'informationauteur seinecle | 2012-08-06
Vous devez vous connecter pour publier un commentaire.
C'est par défaut enregistré dans le conteneur de servlet mémoire ou le dossier temp, selon la taille du fichier et de l'Apache Commons FileUpload de configuration (voir aussi "Configuration du Filtre" de la
<p:fileUpload>
chapitre dans PrimeFaces Guide de l'Utilisateur).Vous ne devriez pas vous inquiéter à ce sujet. Le conteneur de servlets et PrimeFaces savent exactement ce qu'ils font. Vous devriez sur le bouton de commande de la méthode d'action réellement sauver le téléchargement de contenu du fichier à l'emplacement où vous. Vous pouvez obtenir le téléchargement de contenu du fichier comme un
InputStream
parUploadedFile#getInputStream()
ou comme unbyte[]
parUploadedFile#getContents()
(obtention d'unbyte[]
est potentiellement mémoire coûteux dans le cas de fichiers volumineux, vous le savez, chaquebyte
mange un octet de mémoire de la JVM, afin de ne pas faire que dans le cas de gros fichiers).E. g.
avec
(
FilenameUtils
etIOUtils
sont de Commons IO qui vous doit de toute façon déjà installé afin d'obtenir<p:fileUpload>
de travail)Pour générer un nom de fichier unique, vous pouvez trouver
Fichier#createTempFile()
des installations utiles.J'ai utilisé le mode simple, GlassFish 4.0 et PrimeFaces 4.0
Backing Bean
JSF page