我想使用ajax上传文件。但是这样做时,我在选择文件时在浏览器控制台中收到以下错误。
TypeError:jsf.js中未定义partialResponse。
使用ajax的其他输入不会发生这种情况,只有inputFile会发生这种情况。
最近我在JBOSS EAP 6.3中更新到jsf 2.2.14。 servlet是3.0(我在web.xml中选中了它)。
我要上传文件,请遵循以下示例:https://jsflive.wordpress.com/2013/04/23/jsf22-file-upload/
这在xhtml中:
<h:form id="formTest" enctype="multipart/form-data">
<h:inputFile id="file" value="#{manejador.maestroFormularios.maestroArchivos.archivoTemporal}" >
<f:ajax execute="@this" render=":formTest"/>
</h:inputFile>
<h:commandButton value="Upload" action="#{manejador.maestroFormularios.maestroArchivos.cargarArchivoEnLista()}"/>
</h:form>
在后备bean中,我使用Part:类型的archivoTemporal:
public class MaestroArchivos implements Serializable {
private Part archivoTemporal;
答案 0 :(得分:0)
我能够通过从f:ajax
中删除嵌套的h:inputFile
来解决此问题。并且我还在servlet标记的web.xml文件中添加了以下代码。
<multipart-config>
<location>/tmp</location>
<max-file-size>20848820</max-file-size>
<max-request-size>418018841</max-request-size>
<file-size-threshold>1048576</file-size-threshold>
</multipart-config>
感谢您的支持。
答案 1 :(得分:0)
在我们的例子中,这是权限问题。
Apache Tomcat 8.x
your [.war]
root root /path/to/tomcat/work/Catalina/localhost/ROOT/
Tomcat与userowner
用户一起运行,但是ROOT
的路径为root
sudo chown userowner /path/to/tomcat/work/Catalina/localhost/ROOT[.war]/ -R
sudo chgrp usergroup /path/to/tomcat/work/Catalina/localhost/ROOT[.war]/ -R