在使用richfaces做文件上传时,如果希望在浏览器端就判断文件大小是否大于规定的大小,可以使用如下代码实现:
<head>
<SCRIPT type="text/javascript">
function doAdd(e) {
// 显示当前需要上传的文件大小
alert(e.memo.entries[0].size);
}
</SCRIPT>
</head>
<body>
<h:form>
<h:outputText value="上传文件演示"/><br/>
<rich:fileUpload fileUploadListener="#{uploadFileBean.uploadListener}"
maxFilesQuantity="100"
allowFlash="true"
autoclear="false"
immediateUpload="true"
onadd="doAdd(event);"
ajaxSingle="true"/>
</h:form>
</body>
-----------------------------------------------------------------------------------------------------
但是,若使用https方式访问页面时,此时richfaces的上传组件可能不能使用!
我的测试情况是:
在IE6,7,8以及Firefox中无法上传文件,总是报传输错误。
但是在IE9已经Chrome中是可以正常上传文件的!
----------------------------------------
关于这个问题的解决:
之所以在https访问方式下上传组件不能使用,是需要对http响应头添加相应设置:
resp.setHeader("Expires", "0");
resp.setHeader("Pragma", "public");
resp.setHeader("Cache-Control", "public");
关于richfaces upload组件的使用详情,参见:
http://lalalabs.blog.163.com/blog/static/943252022010720113528605/