Wo ist das p:fileUpload hochgeladen-Datei gespeichert und wie kann ich es ändern?
Ich den einfachen Datei-upload von Primefaces in der Entwicklung mit Netbeans. Mein test-Beispiel ist ähnlich zu der Primefaces-Handbuch.
Meine Frage: wo kommt die Datei hochgeladen werden, auf meinem lokalen Rechner? Wie kann ich den Pfad ändern? Thx!!!
Die jsf-Datei:
<?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>
die 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;
}
}
InformationsquelleAutor seinecle | 2012-08-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es standardmäßig gespeichert, entweder die servlet-container, der Speicher, bzw. der temp-Ordner, je nach Größe der Datei und dem Apache-Commons-FileUpload-Konfiguration (siehe auch "Filter Configuration" - Abschnitt der
<p:fileUpload>
Kapitel in PrimeFaces User ' s Guide).Sie sollten sich keine sorgen machen. Der servlet-container und PrimeFaces genau wissen, was Sie tun. Sie sollte in der command-button die action-Methode tatsächlich sparen die hochgeladene Datei Inhalt an den Speicherort, wo Sie es brauchen. Sie können die hochgeladenen Datei-Inhalt als
InputStream
durchUploadedFile#getInputStream()
oder alsbyte[]
durchUploadedFile#getContents()
(immer einbyte[]
ist potenziell Speicher teuer bei großen Dateien, wissen Sie, jederbyte
isst ein byte-JVM-Speicher, so tun Sie das nicht bei großen Dateien).E. g.
mit
(
FilenameUtils
undIOUtils
sind von Commons IO, das sollten Sie sowieso bereits installiert haben, um<p:fileUpload>
arbeiten)Eindeutige Dateinamen erstellen, finden Sie möglicherweise
File#createTempFile()
Anlage hilfreich.Du bist herzlich willkommen.
InformationsquelleAutor BalusC
Ich verwendeten einfach-Modus, GlassFish 4.0 und PrimeFaces 4.0
Backing Bean
JSF-Seite
InformationsquelleAutor Khalifeez