关于JSF上传文件的问题

wolfsuper411 2010-12-25 02:33:44
upfile 还是为null,怎么回事,请问哪里出问题了


代码如下:







<a4j:form id="mainForm" enctype="multipart/form-data" ajaxSubmit="true" reRender="data">
<h:panelGrid columns="2" columnClasses="colL, colL,colL">
<t:outputText value="文件路径:" />
<t:inputFileUpload id="upfile"
value="#{remoteUpgradeTerminalBean.upfile}" storage="file"
immediate="false" accept="image/*" />
</h:panelGrid>

</a4j:form>



bean:

package com.auxgroup.sxamr.view.bean;

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import org.apache.myfaces.custom.fileupload.UploadedFile;


public class RemoteUpgradeTerminalBean{



/*
* 上传文件
*/
private UploadedFile upfile;

public RemoteUpgradeTerminalBean() {
}

/**
* 开始升级
*/
public void confirmUpgrade() {
try {
InputStream in = new BufferedInputStream(upfile.getInputStream());

} catch (Exception x) {

}
}



/**
*
* @return 上传文件
*/
public UploadedFile getUpfile() {
return upfile;
}

/**
*
* @param upfile
* 上传文件
*/
public void setUpfile(UploadedFile upfile) {
this.upfile = upfile;
}

}

web.xml

<!--Tomahawk-->
<filter>
<filter-name>extensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<description>Set the size limit for uploaded files.
Format: 10 - 10 bytes
10k - 10 KB
10m - 10 MB
1g - 1 GB</description>
<param-name>uploadMaxFileSize</param-name>
<param-value>100m</param-value>
</init-param>
<init-param>
<description>Set the threshold size - files
below this limit are stored in memory, files above
this limit are stored on disk.

Format: 10 - 10 bytes
10k - 10 KB
10m - 10 MB
1g - 1 GB</description>
<param-name>uploadThresholdSize</param-name>
<param-value>100k</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>





...全文
313 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
由于JSF2.0标准实现没有提供文件上传组件,而实际应用中很多时候需要上传文件,为了方便开发,我做了一个基于JSF2.0的文件上传组件,上传使用的是Apache 的commons-fileupload组件,我已经将commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar打包成一个lfaces.jar文件,使用时无需导入这两个jar文件,我使用的是Facelets技术,使用时很简单,导入命名空间后就可以使用标签()了,这个标签和标签使用方法一样,具体请参考例子。补充说明:是以临时文件存放在服务器上的,上传后需要自行处理,响应之前(JSF处理完毕)将会删除该临时文件,要设置上传的参数,比如文件存放目录,上传大小等,请在源目录(src)下建一个名为uploadfile.properties的文件,内容如下: #设置用于存放用户上传的文件夹,可以是绝对路径,例:C:/upload,也可是相对路径,例:/upload, #文件上传后是以.tmp为后缀的临时文件存储在服务器上,请求处理完成后系统将自动删除该临时文件,需要自行保存文件到需求的目录 uploadFile.path=E:/ #设置上传文件总大小的上限 uploadFile.sizeMax=1024*1024*50 #设置上传文件大小的上限 uploadFile.fileSizeMax=1024*1024*10 #设置缓存大小,如果文件大于缓存大小时,则先把文件放到缓存中 uploadFile.sizeThreshold=1024*1024 #设置上传文件类型 uploadFile.extFilter=.jpg|.jpeg|.gif|.bmp|.png|.xls|.doc|.txt

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧