j2ee的primefaces文件上传文件保存的目的地 [英] j2ee primefaces fileupload file saving destination
问题描述
我的handleFileUpload方法:
public String getUrlBase(){
return FacesContext.getCurrentInstance()。getExternalContext()。getRealPath(// upload);
$ b $ public void handleFileUpload(FileUploadEvent event){
new File(getUrlBase()+/+ album.getId())。mkdirs();
File result = new File(getUrlBase()+/+ album.getId()+/+ event.getFile()。getFileName());
尝试{
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);
$ b $ catch(IOException e){
e.printStackTrace();
FacesMessage错误=新的FacesMessage(文件没有上传!);
FacesContext.getCurrentInstance()。addMessage(null,error);
编辑:另一个问题
我的查看文件:
< h:form enctype =multipart / form-data prependId = 假 >
update =messagessizeLimit =1073741824
multiple =truelabel =chooseallowTypes = * .JPG; *。png格式; * GIF。
description =图片/>
< / h:表格>
当我添加update =messages到fileUpload时,我得到了
javax.servlet.ServletException:null源
每当我尝试用fileUpload打开页面。难道你不知道如何摆脱它?
解决方案 您可以在 web.xml
。
< 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>
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?
解决方案 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>
这篇关于j2ee的primefaces文件上传文件保存的目的地的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文