j2ee primefaces fileupload file saving destination
17,182
You can configure upload directory in the web.xml
if you want.
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>/Users/primefaces/temp</param-value>
</init-param>
</filter>
Author by
El_w
Updated on July 21, 2022Comments
-
El_w almost 2 years
Today I've got a problem with the PrimeFaces FileUpload. It works nice, but the files are stored in JBoss' temporary directory so whenever I redeploy the application or just commit the sources to svn, all of the images I uploaded are gone. So I wanted to ask, whether there is a way to save the images to the "source" directory of the war project.
My handleFileUpload method :
public String getUrlBase() { return FacesContext.getCurrentInstance().getExternalContext().getRealPath("//upload"); } public void handleFileUpload(FileUploadEvent event) { new File(getUrlBase() + "/" + album.getId()).mkdirs(); File result = new File(getUrlBase() + "/" + album.getId() + "/" + event.getFile().getFileName()); try { FileOutputStream fileOutputStream = new FileOutputStream(result); byte[] buffer = new byte[BUFFER_SIZE]; int bulk; InputStream inputStream = event.getFile().getInputstream(); while (true) { bulk = inputStream.read(buffer); if (bulk < 0) { break; } fileOutputStream.write(buffer, 0, bulk); fileOutputStream.flush(); } fileOutputStream.close(); inputStream.close(); FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); FacesContext.getCurrentInstance().addMessage(null, msg); } catch (IOException e) { e.printStackTrace(); FacesMessage error = new FacesMessage("The files were not uploaded!"); FacesContext.getCurrentInstance().addMessage(null, error); } }
EDIT: another issue
my view file:
<h:form enctype="multipart/form-data" prependId="false"> <p:growl id="messages" showSummary="true" showDetail="true" /> <p:fileUpload fileUploadListener="#{photo.handleFileUpload}" update="messages" sizeLimit="1073741824" multiple="true" label="choose" allowTypes="*.jpg;*.png;*.gif;" description="Images" /> </h:form>
When I add update="messages" to the fileUpload I get
javax.servlet.ServletException: null source
whenever I try to just open the page with the fileUpload. Don't you know how to get rid of it?
-
El_w over 13 yearsAccording to the use guide, this is just a place, where temporary files are stored. I need to have some images uploaded and then to display them in a photo gallery...so I would like to store them in "upload" directory in the web root (where eg. WEB-INF directory is). So when I commit the source to svn, other people will have the pictures in the gallery too. I've tried setting the uploadDIrectory to /upload but that doesn't seem to work.
-
Piotr Gwiazda over 12 yearsDon't keep uploaded images in source folders. Never (are you comming from PHP background?). Keep them somwhere on the disk. If you want to share them with other developers - keep them in database (for small files it is a good choice).