gpt4 book ai didi

java - j2ee primefaces fileupload 文件保存目的地

转载 作者:搜寻专家 更新时间:2023-10-30 23:00:52 25 4
gpt4 key购买 nike

今天我遇到了 PrimeFaces FileUpload 的问题。它运行良好,但文件存储在 JBoss 的临时目录中,因此每当我重新部署应用程序或将源代码提交给 svn 时,我上传的所有图像都消失了。所以想问一下,有没有办法把图片保存到war工程的“source”目录下。

我的 handleFileUpload 方法:

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);
}
}

编辑:另一个问题

我的 View 文件:

<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>

当我将 update="messages"添加到我得到的 fileUpload 时

javax.servlet.ServletException: null source

每当我尝试使用 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>

关于java - j2ee primefaces fileupload 文件保存目的地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4358493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com