File upload Primefaces文件上载不适用于文件大小>;1Mb。
我上传大于1mb的文件时遇到问题。不会调用FileUploadEvent,因为较小的文件正常工作 Web.xml:File upload Primefaces文件上载不适用于文件大小>;1Mb。,file-upload,primefaces,jsf-2.2,apache-commons-fileupload,File Upload,Primefaces,Jsf 2.2,Apache Commons Fileupload,我上传大于1mb的文件时遇到问题。不会调用FileUploadEvent,因为较小的文件正常工作 Web.xml: <filter> <filter-name>PrimeFaces FileUpload Filter</filter-name> <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> <init-p
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>52428800</param-value>
</init-param>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>D:\</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
@ManagedBean
@RequestScoped
public class TesteUpload {
public void handleFileUpload(FileUploadEvent event) {
UploadedFile uploadedFile = event.getFile();
File file = new File(PropertiesLoader.getInstance().getPropertie(PropertiesLoader.PATCH_MIDIA), uploadedFile.getFileName());
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[6124];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Erro!!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
}
<ui:composition template="/public/templates/master.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:define name="divMainPublic">
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{testeUpload.handleFileUpload}" mode="advanced" sizeLimit="51380224" />
</h:form>
</ui:define>
PrimeFaces文件上载筛选器
org.primefaces.webapp.filter.FileUploadFilter
阈值大小
52428800
上传目录
D:\
PrimeFaces文件上载筛选器
Facesservlet
ManagedBean:
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>52428800</param-value>
</init-param>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>D:\</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
@ManagedBean
@RequestScoped
public class TesteUpload {
public void handleFileUpload(FileUploadEvent event) {
UploadedFile uploadedFile = event.getFile();
File file = new File(PropertiesLoader.getInstance().getPropertie(PropertiesLoader.PATCH_MIDIA), uploadedFile.getFileName());
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[6124];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Erro!!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
}
<ui:composition template="/public/templates/master.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:define name="divMainPublic">
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{testeUpload.handleFileUpload}" mode="advanced" sizeLimit="51380224" />
</h:form>
</ui:define>
@ManagedBean
@请求范围
公共类测试上传{
公共无效handleFileUpload(FileUploadEvent事件){
UploadedFile UploadedFile=event.getFile();
File File=新文件(PropertiesLoader.getInstance().getPropertie(PropertiesLoader.PATCH_MIDIA),uploadedFile.getFileName());
试一试{
FileOutputStream FileOutputStream=新的FileOutputStream(文件);
字节[]缓冲区=新字节[6124];
整块;
InputStream InputStream=event.getFile().getInputstream();
while(true){
bulk=inputStream.read(缓冲区);
如果(体积<0){
打破
}
写入(缓冲区,0,大容量);
fileOutputStream.flush();
}
}捕获(IOE异常){
e、 printStackTrace();
FacesMessage error=新的FacesMessage(“Erro!!”);
FacesContext.getCurrentInstance().addMessage(null,错误);
}
}
}
页面:
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
<init-param>
<param-name>thresholdSize</param-name>
<param-value>52428800</param-value>
</init-param>
<init-param>
<param-name>uploadDirectory</param-name>
<param-value>D:\</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
@ManagedBean
@RequestScoped
public class TesteUpload {
public void handleFileUpload(FileUploadEvent event) {
UploadedFile uploadedFile = event.getFile();
File file = new File(PropertiesLoader.getInstance().getPropertie(PropertiesLoader.PATCH_MIDIA), uploadedFile.getFileName());
try {
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[6124];
int bulk;
InputStream inputStream = event.getFile().getInputstream();
while (true) {
bulk = inputStream.read(buffer);
if (bulk < 0) {
break;
}
fileOutputStream.write(buffer, 0, bulk);
fileOutputStream.flush();
}
} catch (IOException e) {
e.printStackTrace();
FacesMessage error = new FacesMessage("Erro!!");
FacesContext.getCurrentInstance().addMessage(null, error);
}
}
}
<ui:composition template="/public/templates/master.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:define name="divMainPublic">
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{testeUpload.handleFileUpload}" mode="advanced" sizeLimit="51380224" />
</h:form>
</ui:define>
我正在使用;
commons-fileupload-1.2.2
commons-io-2.3
primefaces-4.0
jsf 2.2上传的文件保存在
D
驱动器中。它起作用了
使用以下代码更新handleFileUpload
方法
public void handleFileUpload(FileUploadEvent event) {
try {
UploadedFile file = event.getFile();
InputStream inputStream = file.getInputstream();
OutputStream outputStream = new FileOutputStream("D:/"+ file.getFileName());
byte[] bytes = file.getContents();
int read = 0;
while ((read = inputStream.read(bytes)) != -1 ) {
outputStream.write(bytes, 0, read);
}
inputStream.close();
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我会在两年后给你答案。。。英雄联盟 更改web服务器中的“最大帖子大小”。 如果您使用玻璃鱼: 配置->网络配置->列表器->http->最大帖子大小 这个问题困扰了我三个月